# 파라미터로 객체 전달 #### 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 ```
메소드 부분에 주석으로 질문 달아놓았습니다.
## 클래스 또한 타입이 될 수 있습니다. 사용자 정의 타입이라고도 하죠. PS. "클래스 사용자 정의 타입" 으로 구글링 해보세요