객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는다.
그 이유는 객체의 데이터를 외부에서 마음대로 읽고 변경할 경우 객체의 무결성이 깨질 수 있기 때문이다
이런 문제점을 해결하기 위해 데이터는 외부에서 접근할 수 없도록 막고 메소드는 공개해서 외부에서 메소드를 통해 데이터에 접근하도록 유도한다
이러한 역할을 하는 메소드는 Setter이다
외부에서 객체의 데이터를 읽을 때도 메소드를 사용하는 것이 좋다
이러한 역할을 하는 메소드는 Getter이다
클래스를 선언할 때 가능하다면 필드를 private로 선언해서 외부로부터 보호하고, 필드에 대한 Setter와 Getter 메소드를 작성해서 필드값을 안전하게 변경/사용하는 것이 좋다
private 데이터타입 name;
//Getter
public 리턴타입 getName(){
return name;
}
//Setter
public void setName(리턴타입 name){
this.name=name;
}
필드 타입이 boolean일 경우는 Getter는 get으로 시작하지 않고 is로 시작하는 것이 관례이다
private boolean flag;
//Getter
public boolean isFlag(){
return flag;
}
//Setter
public void setFlag(boolean flag){
this.flag=flag;
}
만약 외부에서 필드값을 읽을 수만 읽고 변경하지 못하도록 하려면(읽기 전용) Getter 메소드만 선언해도 되고, Setter 메소드를 private 접근 제한을 갖도록 선언해도 된다
'JAVA' 카테고리의 다른 글
[JAVA] 추상클래스 (0) | 2022.02.28 |
---|---|
[JAVA] 상속 (0) | 2022.02.28 |
[JAVA] 객체와 클래스 (0) | 2022.02.22 |
[JAVA] 객체 지향 프로그래밍(OOP) (0) | 2022.02.19 |
[JAVA] 배열 (0) | 2022.02.17 |