반응형
<심플한 내용이라 간단하게 정리>
정적 멤버로만 이루어진 클래스
1. 유틸리티 성 클래스
ex) java.lang.Math, java.util.Arrays
2. 특정 인터페이스를 구현하는 객체를 생성해주는 클래스
ex) java.util.Collections
3. final 클래스와 관련된 메서드들을 모아놓을 때
여기선 final 클래스란 상속이 불가한 클래스
final class Service {
}
이런 유틸리티 클래스는 대개 인스턴스화 하지않는다.
그렇다고 생성자를 명시하지않으면 컴파일러가 자동으로 public 기본 생성자를 만들어준다. -> 원하는 방향이 아님
그때, private 생성자를 추가하면 클래스의 인스턴스화를 막을 수 있다.
class Service {
private Service() {
throw new AssertionError();
}
}
또한 생성자 호출 시 에러를 발생시켜 어떤 환경에서도 인스턴스화되는 것을 막아준다.
대신 상속이 불가해진다.
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] Effective Java - 6. 불필요한 객체 생성을 피하라. (1) | 2022.09.22 |
---|---|
[JAVA] Effective Java - 5. 자원을 직접 명시하지 말고 의존 객체 주입 사용 (0) | 2022.09.14 |
[JAVA] Effective Java - 3. private 생성자나 열거 타입으로 싱글턴 보증 (0) | 2022.08.31 |
[JAVA] Effective Java - 2. 점층적 생성자, 자바 빈즈, 빌더 패턴 (0) | 2022.08.17 |
[JAVA] Effective Java - 1. 정적 팩터리 메서드 (0) | 2022.08.04 |