# 파라미터로 객체 전달
#### CODE <a class='btn btn-default' href='/codes/44661'>Link</a>
```
public class HeroTest {
public static void main(String[] args) {
// 객체 생성
Hero thor = new Hero("토르", 150); // thor -> {"토르", 150}
Hero thanos = new Hero("타노스", 160); // thanos -> {"타노스", 160}
// 토르의 펀치 -> 타노스
thor.punch(thanos);
/* 2.코드를 추가하여 펀치를 주고 받으세요. */
thanos.punch(thor);
thanos.punch(thor);
}
}
class Hero {
// 필드
String name;
int hp;
// 생성자
Hero(String s, int i) {
name = s;
hp = i;
}
// 메소드
void punch(Hero enemy) {/*요 부분에 저 말고 다른분이 질문하신걸 봤는데요 Hero타입을 사용하신 거라고 하셨는데 Hero타입이라 함은 앞에 클래스명을 붙이는 것도 타입이라고 지칭하는 건가요 ? 타입은 원래 String , int , double 이런것들이 타입 아닌가요 ? */
// 때린 주체 객체
System.out.printf("[%s]의 펀치!! ", name);
/* 1. 맞은 객체에 대한 정보를 출력하세요. */
System.out.print(enemy.name + "의 HP: " + enemy.hp + " -> ");
enemy.hp-=10;
System.out.println(enemy.hp);
}
}
```
#### INPUT
```
```
#### OUTPUT
```
[토르]의 펀치!! 타노스의 HP: 160 -> 150
[타노스]의 펀치!! 토르의 HP: 150 -> 140
[타노스]의 펀치!! 토르의 HP: 140 -> 130
```
junsens1님의 답변
메소드 부분에 주석으로 질문 달아놓았습니다.
sehongpark님의 답변
## 클래스 또한
타입이 될 수 있습니다. 사용자 정의 타입이라고도 하죠.
PS.
"클래스 사용자 정의 타입" 으로 구글링 해보세요