변수를 선언하는 것과 private static varName;
다른 것으로 변수를 선언하고 private varName;
있습니까?
예, 둘 다 다릅니다. 첫 번째 class variable
값은 단일 값을 보유하기 때문에 호출 되는 class
반면 instance variable
다른 값은 다른 값을 보유 할 수 있기 때문에 호출 instances(Objects)
됩니다. 첫 번째 인스턴스는 jvm에서 한 번만 작성되고 다른 인스턴스는 인스턴스 당 한 번 작성됩니다. 즉, 인스턴스가 10 개인 경우 private varName;
jvm에서 10 개의 다른 항목이 작성 됩니다.
변수를 선언하면 static
다른 특별한 속성이 부여됩니까?
예, 정적 변수는 일반 인스턴스 변수와 다른 속성을 갖습니다. 나는 이미 언급하지 않았고 여기에 몇 가지를 보자 : class variables
(정적으로 선언 된 인스턴스 변수)는 같은 클래스 이름을 사용하여 직접 액세스 할 수 있습니다 ClassName.varName
. 또한 인스턴스 변수가 해당 객체에서만 액세스되는 것과 달리 해당 클래스의 모든 객체는 해당 값에 액세스하고 값을 수정할 수 있습니다. 정적 변수에는 클래스 변수를 사용할 수 있습니다.
private static variable
Java에서 무엇을 사용 합니까?
논리적으로, 첫 번째 private static variable
와 다를 바없이 public static variable
더 많은 제어를 제공합니다. IMO, 당신은 말 그대로 대체 할 수있는 public static variable
가 private static variable
의 도움으로 public static
getter와 setter 메소드.
널리 사용되는 영역 중 하나 는 전 세계에 해당 클래스의 단일 인스턴스 만있는 private static variable
간단한 Singleton
패턴 을 구현하는 것입니다. 여기서 static
식별자는 외부 세계에서 단일 인스턴스에 액세스 할 수 있도록하는 중요한 역할을합니다 (물론 공개 정적 게터 메소드도 주요 역할을 수행함).
public class Singleton {
private static Singleton singletonInstance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return Singleton.singletonInstance;
}
}