객체 지향 프로그래밍에서는 메소드를 통해서 데이터를 변경하는 방법을 선호한다. 데이터는 외부에서 접근할 수 없도록 막고 메소드는 공개해서 외부에서 메소드를 통해 데이터에 접근하도록 유도한다. 그 이유는 메소드는 매개값을 검증해서 유효한 값만 데이터로 저장할 수 있기 때문이다. 이러한 역할을 하는 메소드가 Setter
이다.
외부에서 객체의 데이터를 읽을 때도 메소드를 사용하는 것이 좋다. 객체 외부에서 객체의 필드값을 사용하기에 부적절한 경우도 있다. 이런 경우에는 메소드로 필드값을 가공한 후 외부로 전달하면 된다. 이런 메소드가 Getter
이다.
클래스를 선언할 때 가능하다면 필드를 private로 선언해서 외부로부터 보호하고, 필드에 대한 Setter와 Getter 메소드를 작성해서 필드값을 안전하게 변경/사용하는 것이 좋다.
private 타입 fieldName;
//Getter
public 리턴타입 getFieldName(){
return fieldName;
}
//Setter
public void setFieldName(타입 fieldName){
this.fieldName=fieldName;
}
필드 타입이 boolean일 경우에는 Getter는 get으로 시작하지 않고 is
로 시작하는 것이 관례이다.
private boolean stop;
//Getter
public boolean isStop(){
return stop;
}
//Setter
public void setStop(boolean stop){
this.stop=stop;
}