데이터를 외부에서 함부로 변경하지 못하도록 하기위해 외부로부터 접근을 제한 하는것을 캡슐화 라고한다.
데이터(멤버변수)를 보호하기 위해 캡슐화 한다.
캡슐화를 하려면 인스턴스 변수(클레스 변수 )를 private 로 지정하고 접근 제어를 위해 public으로 지정된 게터와
세터를 만들면 된다.
해드퍼스트 예 -
class GoodDog {
// 인스턴트 변수를 private로 만듭니다.
private int size;
// 게터메소드를 public으로 만듭니다.
public int getSize() {
return size;
}
// 세터메소드를 public으로 만듭니다.
public void setSize(int size) {
this.size = size;
}
void bark() {
if (size > 60) {
System.out.println("Woof! woof!");
} else if (size > 14) {
System.out.println("Ruff! Ruff!");
} else {
System.out.println("Yip! Yip!");
}
}
}
class GoodDogTestDrive {
public static void main(String[] args) {
//객체 생성.
GoodDog one = new GoodDog();
//세터의 값 넣기.
one.setSize(70);
GoodDog two = new GoodDog();
two.setSize(8);
// 게터메서드로 값 가져오기.
System.out.println("Dog one " + one.getSize());
System.out.println("Dog two " + two.getSize());
System.out.println();
// 메소드 실행.
one.bark();
two.bark();
}
}