본문은 Effective Java를 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다.
- 정적 메서드와 정적 필드만을 담은 클래스를 만들고 싶을 때가 있음
- java.lang.Math, java.util.Arrays: 기본 타입 값이나 배열 관련 메서드들을 모아놓을 수 있음
- java.util.Collections: 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드(혹은 팩터리)
- final클래스와 관련된 메서드들을 모아놓을 때 사용
- final클래스는 상속이 불가능 -> 기능의 확장이 어려움
- 관련된 메서드들을 모아 놓음으로써 기능의 확장이 용이해짐
- 생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어줌
- 즉, 매개변수를 받지 않는 public 생성자가 만들어지며, 사용자는 이 생성자가 자동 생성된 것인지 구분할 수 없다
- pirvate 생성자를 추가하여 클래스의 인스턴스화를 막을 수 있음
- 상속을 불가능하게 하는 효과
- 상속이 가능하게 하려면 public, protected 생성자 이용
- 팀원분께서는 private 생성자로 상속을 막더라도 클래스 레벨에서 final 키워드를 붙이는 게 좋을 것 같다는 의견을 주셨다(상당히 공감했다)
'책 > Effective Java' 카테고리의 다른 글
[이펙티브 자바] 아이템6: 불필요한 객체 생성을 피하라 (0) | 2022.04.18 |
---|---|
[이펙티브 자바] 아이템5: 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 (0) | 2022.04.18 |
[이펙티브 자바] 아이템3: private 생성자나 열거 타입으로 싱글턴임을 보증하라 (0) | 2022.04.18 |
[이펙티브 자바] 아이템2: 생성자에 매개변수가 많다면 빌더를 고려하라 (0) | 2022.04.18 |
[이펙티브 자바] 아이템1: 생성자 대신 정적 팩터리 메서드를 고려하라 (0) | 2022.04.18 |