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

최대 1 분 소요

들어가며

유틸성 클래스의 인스턴스화를 막는 방법을 알아보기 위한 포스팅이며 해당 게시글은 인프런 백기선 강사님의 이펙티브 자바 완벽 공략 1부 강의를 바탕으로 쓰였음을 미리 밝힙니다.

추상 클래스

  • abstract 키워드를 통해 인스턴스화를 막을 수 있다.
  • 하지만 상속을 통해 자손 클래스의 객체를 생성하는 것은 막을 수 없다.

private 생성자

  • private 생성자를 통해 인스턴스화를 막을 수 있다.
  • 상속의 경우 자손 클래스에서 부모 클래스의 필드 초기화를 위해 부모 클래스의 생성자를 호출해야 되는데 부모 클래스 생성자의 접근 제어자가 private이므로 객체 생성이 불가능해진다.
  • 객체 내에서의 생성자 호출을 방지하기 위해 AssertionError을 던진다.
  • 클래스에 final 키워드를 붙여서 상속을 금지시키는 방법도 이용할 수 있다.

댓글남기기