캡슐화를 시키면서 데이터 변경이 필요한 경우
Ex) private 접근제어자가 포함되어 있는 객체 변수의 값을 추가하거나 수정하고 싶을 때
package example;
public class example {
public static void main(String[] args) {
Starcraft unit = new Starcraft();
unit.setName("레이스"); //set에 입력
unit.setAp(50);
unit.setDp(10);
String name = unit.getName();
System.out.printf("이 유닛의 이름은 %s 입니다.\n", name);
int ap = unit.getAp();
System.out.printf("%s의 공격력은 %d 입니다.\n", name, ap);
int dp = unit.getDp();
System.out.printf("%s의 방어력은 %d 입니다", name, dp);
}
}
class Starcraft {
private String name; // private 동일 클래스빼곤 접근불가
private int ap;
private int dp;
public String getName() { getter 멤버변수의 값
return name;
}
public void setName(String name) { //setter 멤버변수 값변경
this.name = name;
}
public int getAp() {
return ap;
}
public void setAp(int ap) {
this.ap = ap;
}
public int getDp() {
return dp;
}
public void setDp(int dp) {
this.dp = dp;
}
}
이 유닛의 이름은 레이스 입니다.
레이스의 공격력은 50 입니다.
레이스의 방어력은 10 입니다
setter 메서드를 통해 외부에서 변경하고자 하는 값을 넣어주고 getter 메서드는 이렇게 변경한 값을 읽어옴