#파라미터로 객체 전달 ## 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가 들어가는 이유가 뭔가요??
# 문자열을 반환할 필요가 없기 때문입니다. 만약 문자열을 반환하는 방식으로 코드를 짰다면? 아래와 같이 만들 수 있겠습니다. ``` 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); } } ```