public 클래스는 모든 필드를 private으로 하고 접근자를 제공하는 것이 좋습니다.
public class Member {
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
자바 플랫폼 라이브러리에는 이 규칙을 어기는 사례가 있습니다.
불변 필드라도 완전히 안전할 수 없으므로 public 클래스는 무조건 필드를 직접 노출하지 않는 것이 좋습니다.
하지만 default 클래스 혹은 private 중첩 클래스라면 필드를 노출해도 문제는 없습니다. 오히려 노출하는 편이 나을 때도 있습니다.(깔끔)
반응형
'스터디 > 이펙티브 자바' 카테고리의 다른 글
[Effective Java] Item18. 상속보다는 컴포지션 (0) | 2022.05.29 |
---|---|
[Effective Java] Item17. 변경 가능성을 최소화 (0) | 2022.05.29 |
[Effective Java] Item15. 클래스와 멤버의 접근 권한을 최소화 (0) | 2022.05.29 |
[Effective Java] Item14. Comparable을 구현할지 고려 (0) | 2022.05.21 |
[Effective Java] Item13. clone 재정의는 주의해서 진행 (0) | 2022.05.21 |