티스토리 뷰

이펙티브 자바 Effective Java 2/E
국내도서
저자 : 조슈아 블로크(Joshua Bloch) / 이병준역
출판 : 인사이트 2014.09.01
상세보기

Effective Java 에서는 정적 메서드나 필드만 모은 클래스가 필요할 때가 있다고 한다.
 1. 자바의 기본 자료형 값 또는 배열에 적용되는 메서드 ( java.lang Math , java.util.Arrays )
 2. 특정 인터페이스를 구현하는 객체를 만드는 팩터리 메서드 등으 정적 메서드의 모임

위 경우의 클래스들은 유틸리티 클래스로서 객체를 만드는 목적의 클래스가 아니다.
따라서 객체를 만드는 생성자가 있으면 더 어색하지만 컴파일러는 자동으로 인자가 없는 public
기본 생성자를 생성한다.
 
이런 경우에 private 생성자를 이용하여 객체 생성을 막을 수 있다.

public class UtilityClass { private UtilityClass() { //실수로 생성자가 호출되었을 때 알수 있도록. throw new AssertionError(); } ... }

이 방법은 하위 클래스 생성도 막을 수 있다. 모든 생성자는 상위 클래스의 생성자를 명시적으로든  혹은
묵시적으로든 호출할 수 있어야 하지만 호출 가능한 생성자가 없기 때문에.



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함