class Point {
public double x;
public double y;
}
public
으로 선언되어 있어, 클래스 외부에서 직접 접근이 가능함위와 같은 문제를 해결하기 위해, 필드의 접근 제한자를 private
으로 바꾸고, 필요한 데이터에 접근할 수 있는 getter
메서드를 제공
class Point {
private double x;
private 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;
}
}
getter
를 통해서만 데이터에 접근할 수 있으므로, 필드를 잘못 변경하는 일을 방지할 수 있음getter
메서드)는 그대로 유지할 수 있어, 사용하는 코드를 변경하지 않고도 내부 구현을 수정할 수 있음setter
메서드(필요한 경우)를 통해 데이터를 변경할 때, 필요한 검증이나 부수 작업을 수행할 수 있음package-private
와 private
중첩 클래스는?