본문 바로가기
Effective JAVA

4. 인스턴스화를 막으려거든 private 생성자를 사용하라

by 상국이 2021. 8. 22.
728x90

* 인스턴스화 : 인스턴스가 실제로 메모리에 할당된 상태

 

컴파일러가 기본 생성자를 만드는 경우는 오직 명시된 생성자가 없을 때뿐이다.

   -> private 생성자를 추가하면 클래스의 인스턴스화를 막을 수 있다. (명시적 생성자가 private이므로 클래스 밖에서 접근할 수 없다.)

 

public class Coffee{

	private Coffee{				// 생성자(인스턴스화 방지)
		...
	}
    
    ...
}

이 코드는 어떤 환경에서도 클래스가 인스턴스화되는 것을 막아줍니다.

 

* 이 방식은 상속을 불가능하게 막아준다. 모든 생성자는 명시적이든 묵시적이든 상위 클래스의 생성자를 호출하게 되는데,

이를 private으로 선언했으므로 하위 클래스가 상위 클래스의 생성자에 접근할 수 없다.

 

728x90

댓글