아이템 16 - public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라
class Point { public double x; public double y; } 이런 클래스는 데이터 필드에 직접 접근할 수 있으니 캡슐화의 이점을 제공하지 못한다(아이템 15). API를 수정하지 않고는 내부 표현을 바꿀 수 없고, 불변식을 보장할 수 없으며, 외부에서 필드에 접근할 때 부수 작업을 수행할 수도 없다. 철저한 객체 지향 프로그래머는 이런 클래스를 상당히 싫어해서 필드들을 모두 private으로 바꾸고, public 접근자(getter)를 추가한다. class Point { private double x; private double y; public Point(double x, double y) { this.x = x; this.y = y; } public double getX(..