티스토리 뷰


코딩을 할 때 객체 생성을 막고 싶을 때가 있다.

유틸리티 클래스(Utiliy class)들은 객체를 만들 목적의 클래스가 아니다. 객체를 만들면 오히려 이상하다. 하지만 생성자를 생략하면 컴파일러는 자동으로 디폴트 생성자(default constructor)를 만들어 버린다. 귀가 닳도록 듣고 입이 아프도록 많이 했던 말이다.. 이렇기 때문에 생성자를 만들지 않으려고 생성자를 선언하지 않았어도 사용자는 해당 클래스의 객체를 만들 수 있게 된다.


이런 경우 디폴트 생성자를 private로 정의해 놓고 객체를 생성하지 못하도록 막아야한다. 

/* 객체를 만들 수 없는 유틸리티 클래스 */

public class UtilityClass {

/* 기본 생성자가 자동으로 생성도지 못하도록 하여 객체 생성 방지 */

private UtilityClass() {

throw new AssertionError();

}

... /* 나머지 생략 */

}


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2025/03   »
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 31
글 보관함