가능한 중복 :
What is the use of making constructor private in a class?개인용 생성자를 사용하는 것이 유용한 경우는 언제입니까?
는 개인 생성자를 사용하는 것이 유용하다? 보호 된 것은 어떨까요?
가능한 중복 :
What is the use of making constructor private in a class?개인용 생성자를 사용하는 것이 유용한 경우는 언제입니까?
는 개인 생성자를 사용하는 것이 유용하다? 보호 된 것은 어떨까요?
개체의 외부 인스턴스화를 방지하려는 경우 유용합니다. 정적 팩토리 클래스, 싱글, 등
내가private
몇 용도 생각할 수
:
마지막의 완전히 인위적인 예 : protected
에 대한
private MyClass(int a) {
this.a = a}
public MyClass(int a, String B) {
this(a);
this.b = b;
}
public MyClass(int a, double c) {
this(a);
this.b = Double.toString(c);
}
유사 추론, 그냥 서브 클래스 및 패키지 이웃 특권 몇 가지를 확장합니다.
싱글 톤 패턴은 개인 생성자를 사용하여 객체의 인스턴스화를 제어합니다. 유닛 테스트에서 사용되는 특별한 생성자를 원할 때 (의존성 삽입 프레임 워크없이 유닛 테스트를 실행하는 경우), 공용으로 만들지 않고 패키지를 보호하고 유닛 테스트를 다음과 같이 선언 할 수 있습니다. 같은 패키지.