클래스나 인스턴스를 이용해서 객체 지향 프로그램을 자유롭게 개발할수 있게 되고 , 때로는 인간이 개발하는 점에서 빈번한 실수가 발생하는데에 미리 방지를 하자는 방법에 캡슐화를 하는것이 방법이다.
void attack() {
System.out.println(this.name + "는 공격했다!");
System.out.println("적에게 5포인트의 데미지를 주었다 !");
// this.hp -= this.damage;
}
void sleep() {
this.hp = 100; // this는 자기자신 을 표현
System.out.println(this.name + "는 잠을 자고 회복했다 !");
}
필드에 전부 private 선언
메소드는 전부 public 선언
별다른 이유가 없으면 public 선언
get(변수) 이름에서 받은내용을 읽을수만 있음 (읽기전용)
set(변수) 에서 수정할수 있는 기능 (쓰기전용)
getter 와 setter를 쓰는 장점에는
1. 읽기전용 , 쓰기전용 필드에 구현
2. 필드의 이름 등 클래스의 내부 설계를 자유롭게 변경 가능
3. 필드의 액세스를 검사할 수 있음 (유효성검사 )