-
아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라정적 메서드와 정적 필드만을 담은 클래스를 만들어야 하는 경우
이러한 클래스를 Util 클래스라 부른다. (정적 멤버만 담은 클래스)Util 클래스 사용 경우
Util 클래스 사용의 주의 사항
하지만 생성자를 명시하지 않으면 컴파일러는 자동으로 기본 생성자를 만듬public static UtilClass {
private static int num;
// public UtilClass() {} --> 자동 생성
private static void staticMethod() {}
}
추상 클래스로 만드는 것으로는 인스턴스화를 막을 수 없음 !!!
인스턴스화를 막는 방법private 생성자를 추가하자public static UtilClass {
private static int num;
// 기본 생성자가 만들어지는 것을 막음 (인스턴스화 방지)
private UtilClass() {}
private static void staticMethod() {}
} 명시적 생성자인 private을 만들어줌으로 써 클래스 바깥에서 접근이 불가능 (생성자가 존재하는데 호출할 수 없다는 것이 직관적이지 않으니 주석으로 의미를 더해주자)
|
Beta Was this translation helpful? Give feedback.
Answered by
JoisFe
Dec 14, 2022
Replies: 1 comment 2 replies
-
정리에 소질이 없어 읽기에 편하실지 모르겠네요.. 정리하는 법도 계속해서 늘려나가도록 하겠습니다. |
Beta Was this translation helpful? Give feedback.
2 replies
Answer selected by
JoisFe
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
정리에 소질이 없어 읽기에 편하실지 모르겠네요.. 정리하는 법도 계속해서 늘려나가도록 하겠습니다.
잘못된 부분이나 질문 있으시면 comment 주세요.