public class Point {
public double x;
public double y;
}
이렇게 데이터 필드를 직접 접근하게되면 여러가지 문제점이 있습니다.
public class Point {
private double x;
pirvate double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() { return x; }
public double getY() { return y; }
public void setX(double x) { this.x = x; }
public void setY(double y) { this.y = y; }
}
패키지 바깥에섯 접근할 수 있는 public클래스라면 접근자를 제공함으로써 클래스 내부 표현 방식을 언제든 바꿀 수 있는 유연성을 얻을 수 있습니다. 하지만 package-private클래스 혹은 private 중첩 클래스라면 데이터 필드를 노출해도 문제가 없다.