스터디/이펙티브 자바
[Effective Java] Item 4. 인스턴스화를 막으려면 private 생성자를 사용
niniz
2022. 5. 14. 10:11
인스턴스화를 막는 이유
java.lang.Math
,java.util.Arrays
처럼 기본 타입 값이나 관련된 메서드를 모아 놓을 때java.util.Collections
처럼 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드를 모아 놓을 때- final 클래스와 관련된 메서드를 모아 놓을 때
인스턴스화를 막는 방법
public class UtilClass {
//인스턴스화 방지용
private UtilClass() {
throw new AssertionError();
}
}
추상클래스는 하위 클래스를 만들어 인스턴스화 한다는 방법이 있으므로 private 생성자를 추가합니다.
이때 혹시라도 클래스 안에서 생성자를 호출하지 않도록 처리를 해줍니다.
이 방법은 상속을 불가능하게 하는 효과도 있습니다.
반응형