일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 제네릭 타입
- yield
- 바운디드 타입
- github api
- 로컬 클래스
- System.in
- junit 5
- System.err
- 접근지시자
- Switch Expressions
- 항해99
- 람다식
- Study Halle
- 제네릭 와일드 카드
- 브릿지 메소드
- System.out
- 스파르타코딩클럽
- auto.create.topics.enable
- throwable
- 상속
- annotation processor
- 자바스터디
- raw 타입
- docker
- 정렬
- 프리미티브 타입
- 자바할래
- 익명 클래스
- 함수형 인터페이스
- 합병 정렬
Archives
- Today
- Total
코딩하는 털보
이펙티브 자바, 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라 본문
이펙티브 자바, 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라
정적 멤버만 담은 유틸리티 클래스는 인스턴스로 만들어 쓰려고 설계한 게 아니다. 그러나 생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어 주기 때문에 private 생성자를 추가하여 클래스의 인스턴스화를 막을 수 있다.
명시적인 생성자를 추가하면 기본 생성자가 자동으로 만들어지지 않으며, 명시적인 생성자가 private이므로 클래스 바깥에서는 접근할 수 없다. 코드에 인스턴스화 방지용이라는 주석을 추가하는 것도 좋다.
생성자가 private 생성자 하나만 있는 경우에는 하위 클래스의 생성자에서 사용될 상위클래스 생성자가 없는 것이므로 상속도 막을 수 있다.
Comments