본문 바로가기

Java/Java

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

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

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

 

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

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

 

 

public class UtilityClass {

    private UtilityClass() {
    
    }
}

 

 

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

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


References

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