public 클래스에서 public 필드를 두는 것은 외부에서 얼마든 수정이 가능한 신뢰할 수 없는 클래스이다.
따라서 getter, setter 와 같은 접근자 메서드를 사용하고, 필드는 private 으로 두는 것이 일반적이다.
그러나, package-private, private 중첩 클래스라면 데이터 필드를 노출해도 문제가 없다
public 으로 노출한 필드가 불변이라면 상관없지 않을까?
API 를 변경하는 것이 아니면 표현 방식을 바꿀 수 없다.
필드를 읽을 때 부수 작업을 수행할 수 없다.
불변식은 보장할 수 있다.