Java/Effective Java
[Effective Java] 04.인스턴스화를 막으려거든 private 생성자를 사용하라
통통푸딩
2022. 3. 5. 00:02
반응형
정적 멤버만 담은 유틸리티 클래스
- 정적 메서드와 정적 필드만을 담은 클래스
- java.lang.Math, java.util.Arrays, java.util.Collections
- final 클래스와 관련한 메서드를 모아 놓을 때 사용
인스턴스화 막기
- 유틸리티 클래스는 인스턴스로 만들어 쓰려 설계한것이 아님
- 생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어서 인스턴스화가 가능하기 때문에 인스턴스화를 막을 수 없음
- 추상 클래스로 만들면 하위 클래스를 만들어 인스턴스화가 가능하기 때문에 인스턴스화를 막을 수 없음
❗️ private 생성자를 추가하여 인스턴스화를 막을 수 있다. (클래스 바깥에서 접근할 수 없음)
이는 상속도 불가능하게 한다.(생성자가 접근이 불가능하기 때문)
반응형