도서

[도서] Effective Java - Item 4. 인스턴스화를 막으려거든 private 생성자를 사용하라.

땀두 2022. 4. 15. 11:09

이펙티브 자바 3판을 읽으면서 내용을 정리하는 포스트입니다. 혹시 틀린 부분이나 잘 못 설명한 부분이 있으면 댓글로 남겨주시면 수정하도록 하겠습니다.

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

정적 메소드와 정적 필드만 담은 클래스는 객체지향적이지 않지만 나름의 쓰임은 있다.

  • java.lang.Math, java.util.Arrays와 같이 기본 타입 값이나 배열 관련 메소드를 모아둘 수 있다.
  • java.util.Collections와 같은 인터페이스 구현 객체를 모아두는 정적 메소드를 모아둘 수 있다.
  • final 클래스 관련 메소드들을 모아둘 수 있다.

하지만 이러한 경우 생성자를 명시하지 않으면 컴파일러에서 자동으로 기본 생성자를 생성하여 사용자가 구분이 어렵다.

  • 이는 private 생성자를 추가하여 클래스의 인스턴스화를 막으면 된다.