스터디/이펙티브 자바

[Effective Java] Item 4. 인스턴스화를 막으려면 private 생성자를 사용

📝 작성 : 2022.05.14  ⏱ 수정 : 
728x90

인스턴스화를 막는 이유

  1. java.lang.Math, java.util.Arrays처럼 기본 타입 값이나 관련된 메서드를 모아 놓을 때
  2. java.util.Collections처럼 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드를 모아 놓을 때
  3. final 클래스와 관련된 메서드를 모아 놓을 때

인스턴스화를 막는 방법

public class UtilClass {
    //인스턴스화 방지용
    private UtilClass() {
        throw new AssertionError();
    }
}

추상클래스는 하위 클래스를 만들어 인스턴스화 한다는 방법이 있으므로 private 생성자를 추가합니다.
이때 혹시라도 클래스 안에서 생성자를 호출하지 않도록 처리를 해줍니다.
이 방법은 상속을 불가능하게 하는 효과도 있습니다.

반응형