때로는 정적 메서드나 필드만 모은 클래스를 만들고 싶을 때가 있다. 자바의 기본 자료형 값 또는 배열에 적용되는 메서드를 한군데에 모아 두는 클래스라던가, 정적 메서드를 모아둔 클래스 등등 이러한 유틸리티 클래스들은 객체를 만들 목적의 클래스가 아니다. 하지만 생성자를 생략하면 컴파일러는 자동으로 기본생성자를 만들어 버린다. 따라서 원래 의도와는 달리 객체가 생성되어 버리는 것이다.

해결방법. private 생성자를 클래스에 넣어서 객체 생성을 방지

위와같이 구현한 클래스는 어떠한 방식으로도 객체를 생성할 수 없다. 또한 이렇게 하면 하위 클래스도 만들 수 없다. 모든 생성자는 상위 클래스의 생성자를 명시적으로든 아니면 묵시적으로든 호출할 수 있어야 하는데, 호출 가능한 생성자가 상위클래스에 없기 때문이다.



+ Recent posts