객체지향 프로그래밍에서는 객체의 데이터를 외부에서 직접적으로 접근하는 것을 막습니다.
그 이유는 객체의 데이터를 외부에서 마음대로 읽고 변경할 경우 객체의 무결성(결점이 없는 성질)이 깨질 수 있기 때문입니다.
이러한 문제점을 해결하기 위해 객체 지향 프로그래밍에서는 메소드를 통해서 데이터를 변경하는 방법을 선호하고 있습니다.
메소드로 필드 값을 가공한 후 외부로 전달하는 역할을 하는 Getter과
매개값을 검증해서 유효한 값만 데이터로 저장할 수 있는 역할을 하는 Setter에 대해서 알아보겠습니다.
○ 읽기 전용 필드가 있을 수 있다. (Getter의 필요성)
○ 외부에서 알 수 없는 값으로 변경할 수 없도록할 수 있다. (Setter의 필요성)
▲
필드를 age에 private로 선언해서 외부로부터 보호하고,필드에 대한 Setter을 이용하여 if함수로 원하는 범위를 작성하여 대입한다.
Getter메소드를 작성해서 외부로 전달할 수 있도록 하고, 위와 같이 Setter와 Getter 메소드를 작서해서 필드값ㅇ르 안전하게 변경/ 사용하는 결과값을 나타냈다.
○ private 필드의 값을 리턴 하는 역할을 한다. - 필요할 경우 필드 값 가공한다.
○ getFieldName() 또는 isFieldName() 메소드로 작성한다.
(필드 타입이 boolean 일 경우 isFieldName()으로 작성한다.)
○ 외부에서 주어진 값을 필드 값으로 수정한다.
(필요할 경우 외부의 값을 유효성 검사한다.)
○ setFieldName(타입변수) 메소드로 작성한다.
(매개 변수 타입은 필드의 타입과 동일하다.)
○외부에서 필드 값을 읽기만 가능하고, 변경하지 못 하도록 하기 위해서는 Getter 메소드만 선언하는 방법이 있다.
○그리고 다른 방법으로는 Setter 메소드를 private 접근 제한을 갖도록 선언해도 좋은 방법이다.