#파라미터로 객체 전달
## CODE <a class='btn btn-default' href='/codes/13722'>Link</a>
```
public class HeroTest{
public static void main(String[] args){
Hero thor = new Hero("토르", 150);
Hero thanos = new Hero("타노스", 160);
thor.punch(thanos);
thanos.punch(thor);
thanos.punch(thor);
}
}
class Hero{
String name;
int hp;
Hero(String n, int h){
name = n;
hp = h;
}
void punch(Hero enemy){
System.out.printf("[%s]의 펀치!!", name);
System.out.printf("%s의 HP: %d -> %d\n", enemy.name, enemy.hp, enemy.hp - 10);
}
}
```
## INPUT
```
```
## OUPUT
```
[토르]의 펀치!!타노스의 HP: 160 -> 150
[타노스]의 펀치!!토르의 HP: 150 -> 140
[타노스]의 펀치!!토르의 HP: 150 -> 140
```
메소드에서 String 말고 void가 들어가는 이유가 뭔가요??
sehongpark님의 답변
# 문자열을 반환할 필요가 없기 때문입니다.
만약 문자열을 반환하는 방식으로 코드를 짰다면? 아래와 같이 만들 수 있겠습니다.
```
public class HeroTest{
public static void main(String[] args){
Hero thor = new Hero("토르", 150);
Hero thanos = new Hero("타노스", 160);
System.out.println(thor.punch(thanos));
System.out.println(thanos.punch(thor));
System.out.println(thanos.punch(thor));
}
}
class Hero{
String name;
int hp;
Hero(String n, int h){
name = n;
hp = h;
}
String punch(Hero enemy){
return String.format([%s]의 펀치!! %s의 HP: %d -> %d\n", name, enemy.name, enemy.hp, enemy.hp - 10);
}
}
```