인스턴스화를 할 수 없는 클래스
ex) 정적 멤버만 담은 유틸리티 클래스(Arrays, Collections)
생성자를 명시하지 않으면 자동으로 퍼블릭 기본 생성자가 생성된다.
그렇기 때문에 인스턴스화를 원하지 않으면 직접 private 기본 생성자를 작성해야 한다.
추상클래를 만들어도 구현해서 생성자를 만들면 되기 때문에 인스턴스화가 불가하다고 말할 수 없다.
좀 더 확실히 해두고 싶다면 private 생성자에 Exception을 throw 하는 코드를 작성하자.
private 생성자는 인스턴스화를 막을 뿐 아니라 상속을 막는효과도 있다.
상속은 기본적으로 public 또는 protected 접근이 가능한 기본 생성자가 있어야 하기 때문이다.
'책, 강의 정리 > 이펙티브자바' 카테고리의 다른 글
아이템 [6] - 불필요한 객체생성을 피하라 (0) | 2020.01.06 |
---|---|
아이템 [5] - 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 (0) | 2020.01.03 |
아이템 [3] - private 생성자나 열거타입으로 싱글턴임을 보증하라 (0) | 2020.01.01 |
아이템 [2] - 생성자 매개변수가 많다면 빌더를 고려하라 (0) | 2019.12.29 |
아이템 [1] - 생성자 대신 정적 팩터리 메서드를 고려하라 (0) | 2019.12.29 |