아이템4. 인스턴스화를 막으려거든 private 생성자를 사용하라
2021-04-11 00:00:00
# Effective_Java
- 잘 사용하지 않는 방식이지만 나름 쓰임새가 있다.
- 추상 클래스는 상속하는 하위 클래스를 만들어 인스턴스화 하면 만들어진다.
용도
- java.lang.Math와 java.util.Arrays처럼 기본 타입 값이나 배열 관련 메서드들을 모아놓을 수 있다.
- java.util.Collections처럼 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드(혹은 팩터리)를 모아놓을 수 있다. (java 8부터는 interface에 선언 가능)
- final 클래스와 관련한 메서드들을 모아놓을 때도 사용한다.
- private 생성자 안에 에러를 throw 하면, 클래스 안에서 실수로라도 생성자를 호출하지 않도록 해준다.
- 상속을 불가능하게 해준다.
책 예시
1 | public class UtilityClass { |