더북(TheBook)

42.3 필드에 public을 붙여 외부 클래스에 공개하기

이 책에서는 클래스의 구성 요소인 필드는 무조건 private으로 선언합니다. 필드도 속성처럼 public으로 해도 전혀 상관은 없습니다. public으로 구성한 코드를 한 번 살펴보겠습니다.

> class Point
. {
.     public int x;                     //필드: public 필드
.     public int y;
.
.     public Point(int x, int y)        //생성자
.     {
.         this.x = x;
.         this.y = y;
.     }
.
.     public void MoveBy(int dx, int dy) //메서드
.     {
.         x += dx;
.         y += dy;
.     }
. }
>
> Point point = new Point(0, 0); //좌표 기본값 설정
> point.MoveBy(100, 200);        //100, 200으로 이동
> Console.WriteLine($"X : {point.x}, Y : {point.y}");
X : 100, Y : 200

이처럼 public 속성 대신에 public 필드를 사용해도 프로그래밍에는 전혀 지장이 없습니다. 필드는 클래스의 부품 역할을 하는데, 이왕이면 꽁꽁 숨기길 권장하므로 private으로 선언하는 것뿐입니다.