데이터 필드 접근방식
public class Point {
public double x;
public double y;
}
이렇게 데이터 필드를 직접 접근하게되면 여러가지 문제점이 있습니다.
- 클라이언트 코드가 필드를 직접 사용하면 캡슐화의 장점을 제공하지 못한다.
- 필드를 변경하려면 API를 변경해야한다.
- 필드에 접근할 때 부수 작업을 할 수 없다.
접근자와 변경자(mutator) 메서드를 활용해 데이터를 캡슐화
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 중첩 클래스라면 데이터 필드를 노출해도 문제가 없다.
'개발관련 서적 정리 > Effective Java' 카테고리의 다른 글
아이템 18. 상속보다는 컴포지션을 사용하라 (1) | 2023.02.05 |
---|---|
아이템 17. 변경 가능성을 최소화 하라 (1) | 2023.02.05 |
아이템 15. 클래스와 멤버의 접근 권한을 최소화하라. (0) | 2023.02.05 |
아이템 14. Comparable을 구현할지 고민하라 (0) | 2023.02.05 |
아이템 12. toString을 항상 재정의하라 (0) | 2023.02.05 |