이펙티브 자바:: 아이템 4 <인스턴스화를 막으려거든 private 생성자를 사용하라>
🙈

이펙티브 자바:: 아이템 4 <인스턴스화를 막으려거든 private 생성자를 사용하라>

Created
Aug 11, 2024 09:03 AM
Last edited time
Last updated August 22, 2024
Tags
Language
Language
Java
URL

Intro::

이펙티브 자바 정리본입니다.
 
이따금 정적 메서드와 정적 필드만을 담은 클래스를 만들고 싶을 때가 있을 것이다. 이런 경우 생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어준다. 즉, 매개변수를 받지 않는 public 생성자가 만들어지며, 사용자는 이 생성자가 자동 생성된 것인지 구분할 수 없다.
 
추상 클래스로 만드는 것으로는 인스턴스화를 막을 수 없다. 하위 클래스를 만들어 인스턴스화하면 그만이기 때문이다. 결국 인스턴스화를 막는 방법은 컴파일가 기본 생성자를 만드는 경우가 명시된 생성자가 없는 경우일 때 뿐이니 private 생성자를 추가하기만 하면 된다.
public class UtilityClass { // 기본 생성자가 만들어지는 것을 막는다(인스턴스화 방지용). private UtilityClass() { throw new AssertionError(); } // 나머지 코드는 생략 }
 
 

References::

이펙티브 자바 / 조슈아 블로크 지음 (프로그래밍 인사이트)

Loading Comments...