[이펙티브 자바] 아이템 4

Eunkyung·2022년 5월 3일
0

Java

목록 보기
17/21

인스턴스화를 막으려거든 private 생성자를 사용하라

정적 멤버만 담은 유틸리티 클래스는 인스턴스를 생성하지 않아도 사용할 수 있다. 하지만, 생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어주기 때문에 사용자는 이 생성자가 자동으로 생성된 것인지 구분할 수 없다.
추상 클래스로도 인스턴스화를 막을 수 없다. 하위 클래스를 만들어 인스턴스화하면 그만이기 때문이다.

인스턴스화를 막는 방법은 아주 간단하다. private 생성자를 추가하면 된다.

public class ItemClass {

	private ItemClass() {
    	throw new AssertionError();
    }
}

생성자를 private로 선언할 경우 클래스 외부에서 접근 불가, 상위 클래스의 생성자를 호출 할 수 없어 상속이 불가능하다.

출처

  • 이펙티브 자바
profile
꾸준히 하자

0개의 댓글