코딩하는 털보

이펙티브 자바, 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 본문

Book/이펙티브 자바

이펙티브 자바, 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라

이정인 2021. 8. 12. 22:22

이펙티브 자바, 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라

정적 멤버만 담은 유틸리티 클래스는 인스턴스로 만들어 쓰려고 설계한 게 아니다. 그러나 생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어 주기 때문에 private 생성자를 추가하여 클래스의 인스턴스화를 막을 수 있다.

명시적인 생성자를 추가하면 기본 생성자가 자동으로 만들어지지 않으며, 명시적인 생성자가 private이므로 클래스 바깥에서는 접근할 수 없다. 코드에 인스턴스화 방지용이라는 주석을 추가하는 것도 좋다.

생성자가 private 생성자 하나만 있는 경우에는 하위 클래스의 생성자에서 사용될 상위클래스 생성자가 없는 것이므로 상속도 막을 수 있다.

Comments