Java/Java

(Effective Java) 아이템 4. 인스턴스를 막으려거든 private 생성자를 사용하라

주누 2019. 12. 15. 23:13

생성자에 private 접근제어자를 사용하여 인스턴스화를 막자!

정적 멤버만을 가진클래스는 생성 목적이 인스턴스화는 아니다.

 

따라서 생성자를 따로 생성하지 않으면 디폴트 생성자가 생긴다는 점을 잊지 말자!

정적멤버만을 가지는 클래스 : java.lang.Math  java.util.Arrays

 

 

public class UtilityClass {

    private UtilityClass() {
    
    }
}

 

 

단, 이 방법은 상속을 불가능 하게한다.

모든 생성자는 상위 클래스의 생성자를 호출하는데 생성자를 private으로 선언했으니 하위 클래스에서 상위 클래스로 접근할 길이 없다.


References

이펙티브 자바 Effective Java 3/E
국내도서
저자 : 조슈아 블로크(Joshua Bloch) / 이복연(개앞맵시)역
출판 : 인사이트 2018.11.01
상세보기