일반적으로 프로그래밍을 할 때, Object
들의 Member field
(데이터)를 외부에서 직접 접근하는 행위를 막는다.
Member Field
는 Private
접근 제한자로 막아두고, 각 필드의 Getter
, Setter
로 접근하는 방식을 사용한다.
이렇게 해야하는 이유는 객체의 무결성
을 보장하기 위함이다.
예를들어 People
이라는 Class에 height
(키) 라는 Member field
가 존재한다, 이 데이터는 0보다 작으면 안되지만,
외부에서 접근할 경우 음수 값을 Set 함으로써 객체의 무결성
이 깨질 수 있다.
이를 방지하기 위해
Member Field
를 Private
로 만들어 외부의 접근을 제한한 후 Setter
를 사용해 전달받은 값을 내부에서 직접 Member Field
에 넣어주고,
Member Field
값을 가져올 때도, Getter
를 사용해 실제 값을 숨긴 채로 내부의 값을 꺼내올 수 있다.
class Example{
// Member Field
private int a;
// Getter And Setter
public int getA()
return a;
}
public void setA(int a) {
this.a = a;
}
}
class Example_2{
public static void main(String[] args){
add();
}
public static void add(){
Example ex = new Example(); // Example Class Instance 생성
ex.setA(5); // Example Class 멤버 변수 Setter 이용 대입
int a = ex.getA(); // Setter 를 통해 대입한 A를 Getter 를 통해 Get
System.out.println("a = " + a); // 출력
}
}