파라메터에다가 + 값을 적으면
이 답처럼 메소드를 안만들어도 + 30 이 되는거에요 ?
# 리뷰: 기사 돈키호테
#### CODE <a class='btn btn-default' href='/codes/23406'>Link</a>
```
public class KnightTest {
public static void main(String[] args) {
// 객체 생성
Knight knight1 = new Knight("돈키호테", 30);
// 정보 출력
System.out.println("[객체 생성]");
System.out.printf("\t%s\n", knight1.toString());
// 체력 증가: 기존 체력 + 30
knight1.setHp(knight1.getHp() + 30);
// 결과 출력
System.out.println("[체력 증가 +30]");
System.out.printf("\t%s\n", knight1.toString());
}
}
class Knight {
// 필드
private String name;
private int hp;
// 생성자
public Knight(String name, int hp) {
this.name = name;
this.hp = hp;
}
// 게터
public int getHp() {
return this.hp;
}
// 세터
public void setHp(int hp) {
this.hp = hp;
}
// toString
public String toString() {
return String.format("Knight { name: %s, hp: %d }", this.name, this.hp);
}
}
```
#### INPUT
```
```
#### OUPUT
```
[객체 생성]
Knight { name: 돈키호테, hp: 30 }
[체력 증가 +30]
Knight { name: 돈키호테, hp: 60 }
```
tkgksw님의 답변
setHp 메소드는 변수의 값을 변경할수 있는 메소드 이고 getHp 메소드는 hp값을 가져오는 메소드 입니다.
Knight knight1 = new Knight("돈키호테", 30);
현재 돈키호테의 hp가 30인데 기존 체력 + 30을 하려면 knight1.getHp 메소드를 호출해서 현재 체력을 가져온후 + 30을 한 값을
다시 knight1.setHp 메소드에 넣어주면 hp 가60으로 변경됩니다.
knight1.setHp(knight1.getHp() + 30); 가 호출되었을때
knight1.getHp() + 30 = 60이 setHp 메소드의 전달값으로 전달되어 knight1객체의 hp가 60으로 바뀌게 됩니다.
즉 setHp메소드에서 hp의 값을 변경해줬기때문에 knight1객체의 hp값이 30에서 60으로 변경된것입니다.