Study/유니티
Static
김조성준
2023. 7. 12. 23:21
Static을 변수나 메서드 앞에 붙여 정적으로 만들 수 있다. 그렇게 되면 객체가 아닌 클래스에 소속되게 된다.
class Car{
static int cnt=0;
private int num=1;
private string name;
static public void CW(){
Console.WriteLine(cnt); // 가능
Console.WriteLine(num); // 불가능
}
private Car(stirng name){
this.name=name;
}
static Car(){
NewCar = new Car("새 차"); // 인스턴스 메서드 사용 가능
}
}
- 인스턴스의 타입 전체에 걸쳐 전역적으로 적용되는 필드, 메서드, 생성자를 정적 멤버라고 한다.
- 전역적으로 사용하기 위해선, Static 예약어를 붙여 사용해야 하며, 이를 이용한 대표적인 예는 싱글톤이다.
- 싱글톤은 인스턴스가 단 하나만 존재하는 것을 의미하고 정적 메서드 안에서는 인스턴스 멤버에 접근 할 수 없다.
- 또한 정적 메서드는 new로 할당된 객체가 없는 상태에서도 호출이 되며, 정적 필드는 사용이 가능하다.
- 정적 생성자는 클래스에 단 하나만 존재할 수 있고, 단 한번만 실행이 되고 어떤 코드보다도 우선적으로 실행이 된다. (매개변수를 포함할 수 없다.)