언어(Language)/JAVA
[JAVA] getter와 setter를 사용하는 이유
danii0110
2024. 2. 20. 13:15
일반적으로 프로그래밍을 할 때, 객체들의 데이터(필드)를 외부에서 직접적으로 접근하는 것을 막아놓는다.
필드들을 private 접근 제한자로 막아두고, 각 필드의 Getter, Setter로 접근하는 방식을 사용한다.
이렇게 프로그램을 하는 이유는 객체의 무결성을 보장하기 위해서이다.
예를 들어 Man이라는 클래스에 weight(몸무게)라는 필드가 존재할 때, weight는 0보다 작을 수 없으나,
외부에서 직접적으로 접근할 경우, weight에 -100이라는 값을 줌으로써 객체의 무결성이 깨지는 일이 발생한다.
클래스의 필드에 직접 접근하는 것을 막기 위해서 getter와 setter를 사용한다.
Getter & Setter 사용 방법
이를 방지하기 위해, 필드를 private로 만들어 외부의 접근을 제한한 후,
Setter를 사용해 전달받은 값을 내부에서 가공해 필드에 넣어주는 방식을 사용한다.
마찬가지로 필드 값을 가져올 때에도,
Getter를 사용해 본 필드의 값을 숨긴 채 내부에서 가공된 값을 꺼내서 사용하면 된다.