# 리뷰: 마린과 메딕
#### CODE <a class='btn btn-default' href='/codes/40342'>Link</a>
```
public class Starcraft {
public static void main (String[] args) {
// 객체 생성
Marine ma = new Marine("레이너", 80);
Medic me = new Medic("모랄레스", 60, 60);
// 마린의 스팀팩!
ma.stimpack();
// 메딕의 힐!
me.heal(ma);
}
}
class Marine {
String name;
int hp;
Marine(String s, int i) {
name = s;
hp = i;
}
// stimpack 메소드 만들기
void stimpack() {
System.out.printf("[%s]의 스팀팩! HP: %d -> ", name, hp);
hp -= 10;
System.out.printf("%d\n", hp);
}
}
class Medic {
String name;
int hp;
int mp;
Medic(String s, int h1, int h2) {
name = s;
hp = h1;
mp = h2;
}
// heal 메소드 만들기
void heal(Marine target) {//Marine은 파라미터임.
System.out.printf("[%s]의 치유! => [%s] HP(%d -> ", name, target.name, target.hp);
target.hp += 10;
System.out.printf("%d)\n", target.hp);
}
}
```
#### INPUT
```
```
#### OUPUT
```
[레이너]의 스팀팩! HP: 80 -> 70
[모랄레스]의 치유! => [레이너] HP(70 -> 80)
```
goodlife1359님의 답변
## 출력시 데이터 타입
%s는 String 타입의 데이터를 출력할때 사용됩니다.
%d는 int 타입의 데이터를 출력할때 사용됩니다.
void stimpack() {
System.out.printf("[%s]의 스팀팩! HP: %d -> ", name, hp);
hp -= 10;
System.out.printf("%d\n", hp);
}
simpack 메서드에서 name은 String 타입이므로 %s를 사용하여 데이터를 출력해주고 hp는 int 타입이므로 %d를 사용하여 데이터를 출력해 줍니다.
void heal(Marine target) {//Marine은 파라미터임.
System.out.printf("[%s]의 치유! => [%s] HP(%d -> ", name, target.name, target.hp);
target.hp += 10;
System.out.printf("%d)\n", target.hp);
}
heal 메서드에서도 마찬가지로 name 과 target.name의 데이터 타입이 String 이므로 %s를 사용하여 데이터를 출력해주고
target.hp의 타입이 int 이므로 %d 를 사용하여 데이터를 출력해 줍니다.