Java

[Effective Java] 아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라.

quedevel 2022. 5. 24. 14:04
728x90
반응형
  • 이전 코드

    public class Point {
      // public
      public double x;
      public double y;
    }
  • 변경 후 코드

    public class Point {
      // private
      private double x;
      private double y;
    
      // getter, setter
      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

    중첩 클래스에서는 종종 (불변이든 가변이든) 필드를 노출하는 편이 나을 때도 있다.

참고 자료

Joshua Bloch, 『Effective Java 3/E』, 개앞맵시 옮김, 프로그래밍인사이트(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=

728x90
반응형