[JAVA] Getter, Setter를 사용하는 이유
[JAVA] Getter, Setter를 사용하는 이유
- 자바와 같은 객체 지향 프로그램에서는 데이터 자체는 외부에서 접근을 할 수 없도록 하고, 메소드만 공개해서 이 중 유효한 값들을 데이터로 저장함
- 즉, 객체들이 데이터(필드)를 외부에서 직접적으로 접근하는 것을 막아놓음
- 필드들은 private 접근 제한자로 막아두고, 각 필드의 Getter, Setter로 접근하는 방식을 취함
- Getter, Setter는 클래스의 특성중 정보 은닉(Hiding information)을 잘보여줌
- 이렇게 프로그래밍을 하는 이유는 객체의 무결성을 보장하기 위함
- 예를들어 Man이라는 클래스에 weight(몸무게)라는 필드가 존재할 때, weight는 0보다 작을 수없으나,
외부에서 직접적으로 접근할 경우, weight에 -100이라는 값을 줌으로써 객체의 무결성이 깨지는 일이 발생 - 또한, 객체가 가지고 있는 로직을 무시하게 만들수도 있음
- ex)여기
- 이를 방지하기 위해서, 필드는 private로 만들어 외부의 접근을 제한한 후, Setter를 사용해 전달받은 값을 내부에서 가공해 필드에 넣어주는 방식을 사용함
- 마찬가지로 필드 값을 가져올때도, Getter를 사용해 본 필드의 값을 숨긴 채 내부에서 가공된 값을 사용할 수 있음
출처
댓글
댓글 쓰기