스터디/이펙티브 자바

[Effective Java] Item16. public클래스에서는 접근자 메서드 사용

📝 작성 : 2022.05.29  ⏱ 수정 : 
728x90

public 클래스는 모든 필드를 private으로 하고 접근자를 제공하는 것이 좋습니다.

public class Member {
    private String name;
    private int age;

    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
}

 

자바 플랫폼 라이브러리에는 이 규칙을 어기는 사례가 있습니다.

java.awt.Point
java.awt.Dimension

 

불변 필드라도 완전히 안전할 수 없으므로 public 클래스는 무조건 필드를 직접 노출하지 않는 것이 좋습니다.

하지만 default 클래스 혹은 private 중첩 클래스라면 필드를 노출해도 문제는 없습니다. 오히려 노출하는 편이 나을 때도 있습니다.(깔끔)

반응형