728x90
* 인스턴스화 : 인스턴스가 실제로 메모리에 할당된 상태
컴파일러가 기본 생성자를 만드는 경우는 오직 명시된 생성자가 없을 때뿐이다.
-> private 생성자를 추가하면 클래스의 인스턴스화를 막을 수 있다. (명시적 생성자가 private이므로 클래스 밖에서 접근할 수 없다.)
public class Coffee{
private Coffee{ // 생성자(인스턴스화 방지)
...
}
...
}
이 코드는 어떤 환경에서도 클래스가 인스턴스화되는 것을 막아줍니다.
* 이 방식은 상속을 불가능하게 막아준다. 모든 생성자는 명시적이든 묵시적이든 상위 클래스의 생성자를 호출하게 되는데,
이를 private으로 선언했으므로 하위 클래스가 상위 클래스의 생성자에 접근할 수 없다.
728x90
'Effective JAVA' 카테고리의 다른 글
3. private 생성자나 열거 타입으로 싱글턴임을 보증하라 (0) | 2021.08.22 |
---|---|
2. 생성자에 매개변수가 많다면 빌더를 고려하라 (0) | 2021.08.22 |
1. 생성자 대신 정적 팩토리 메서드를 고려하라 (0) | 2021.08.22 |
댓글