Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 생성자를 private로 선언할 수 있습니까?

<시간/>

, 생성자를 비공개로 선언할 수 있습니다. . 생성자를 private로 선언하면 클래스의 개체를 만들 수 없습니다. 싱글톤 디자인 패턴에서 이 비공개 생성자를 사용할 수 있습니다. .

사설 생성자의 조건

  • 비공개 생성자 클래스의 하위 클래스를 허용하지 않습니다.
  • 비공개 구성 r 클래스 외부에서 개체를 생성할 수 없습니다.
  • 모든 상수 메서드가 클래스에 있으면 개인 생성자를 사용할 수 있습니다.
  • 모든 방법이 정적 인 경우 그러면 비공개 생성자를 사용할 수 있습니다.
  • 수업을 연장하려는 경우 개인 생성자가 있는 컴파일 시간 오류가 발생합니다. .

class SingletonObject {
   private SingletonObject() {
      System.out.println("In a private constructor");
   }
   public static SingletonObject getObject() {
      // we can call this constructor
      if (ref == null)
         ref = new SingletonObject();
      return ref;
   }
   private static SingletonObject ref;
}
public class PrivateConstructorDemo {
   public static void main(String args[]) {
      SingletonObject sObj = SingletonObject.getObject();
   }
}

출력

In a private constructor