getter와 setter는 객체지향 프로그래밍에서 사용되는 개념이며 일종의 메소드이다. getter는 값을 반환하는 메소드, setter는 객체의 값을 설정 및 변경하는 메소드라고 보면 된다.
private를 관리하기 위해서이다.
일단 getter&setter를 사용하는 이유는 외부 클래스의 필드에 직접 접근하는 것을 막기 위해서이다. 따라서 필드들을 private 접근 제한자로 막아두고 각 필드에는 getter&setter로 접근하는 방식을 사용한다.
정보은닉
객체 내부의 필드에 직접 접근하지 않아 객체의 정보은닉을 가능하게 해주어 보안을 강화할 수 있다.
코드의 안정성과 유지보수성을 높일 수 있음
값 필터링
예를 들어 weight 프로퍼티에는 -100, 500 과 같은 값은 들어올 수 없다. 그러면 이 값을 할당받지 못하게 해야되는데 setter 메소드를 경유하도록 설정하면 if문을 통해 값을 필터링을 할 수 있게 된다.
private String name;
// Getter
public String getName(){
return name;
}
// Setter
public void setName(String name){
this.name = name
}
getName()
- 접근제한자: public ( 이 메소드는 외부에서 사용할 수 있도록 해야 하므로 public을 사용해야 한다.)
- 리턴타입: 필드의 리턴타입을 사용
- 메소드 이름: get + 필드명 ( 필드명의 첫 글자는 반드시 대문자로 한다.)
- 리턴값: 필드값
setName( String name)
- 접근제한자: public
- 리턴타입: void
- 메소드명: set + 필드명 ( 필드명의 첫 글자는 반드시 대문자로 한다.)
- 매개변수타입 : 필드 타입
보통은 직접 작성하지 않고 자동으로 getter&setter을 생성한다.
신용권, 『혼자공부하는 자』, 한빛미디어(2023)
kephl Javatory, https://kephilab.tistory.com/54