[Java] 인스턴스화를 막으려거든 private 생성자를 사용하라
들어가며
유틸성 클래스의 인스턴스화를 막는 방법을 알아보기 위한 포스팅이며 해당 게시글은 인프런 백기선 강사님의 이펙티브 자바 완벽 공략 1부 강의를 바탕으로 쓰였음을 미리 밝힙니다.
추상 클래스
abstract
키워드를 통해 인스턴스화를 막을 수 있다.- 하지만 상속을 통해 자손 클래스의 객체를 생성하는 것은 막을 수 없다.
private 생성자
private
생성자를 통해 인스턴스화를 막을 수 있다.- 상속의 경우 자손 클래스에서 부모 클래스의 필드 초기화를 위해 부모 클래스의 생성자를 호출해야 되는데 부모 클래스 생성자의 접근 제어자가
private
이므로 객체 생성이 불가능해진다. - 객체 내에서의 생성자 호출을 방지하기 위해
AssertionError
을 던진다. - 클래스에
final
키워드를 붙여서 상속을 금지시키는 방법도 이용할 수 있다.
댓글남기기