# 리뷰: 마린과 메딕
정답이 마린과 메딕 각각 클래스를 만들어서 객체생성하는건 알겠습니다.
그런데 바로 위에있는 문제 "피라미터로 객체전달" 처럼 히어로 클래스 하나에 두개의 객체 토르 타노스를 만들면 오류없이 잘 작동되는데
이번 마린과 메딕에서도 똑같이 하나의 마린 클래스에서 두 개의 객체생성한다음에 함수만 불러와서 하고싶은데
오류가 나오긴하는데 뭔 소린지 모르겠네여
#### CODE <a class='btn btn-default' href='/codes/20898'>Link</a>
```
public class Starcraft {
public static void main (String[] args) {
// 객체 생성
Marine m1 = new Marine("모랄레스",60);
Marine m2 = new Marine("레이너",80);
// 마린의 스팀팩!
m2.stimpack();
m1.heal(m2);
// 메딕의 힐!
}
class Marine{
String name;
int hp;
Marine(String name, int hp){
this.name=name;
this.hp=hp;
}
public void heal(Marine healing){
System.out.printf("[%s]의 치유! => [%s] HP(%d -> ",name, healing.name, healing.hp);
healing.hp+=10;
System.out.printf("%d)",healing.hp);
}
public void stimpack(){
System.out.printf("[%s]의 스팀팩! HP: %d -> ",name, hp);
hp-=10;
System.out.printf("%d",hp);
}
}
}
```
#### INPUT
```
```
#### OUPUT
```
/root/var/tmp/2020_04_06_05_29_19_12364db3/Starcraft.java:4: error: non-static variable this cannot be referenced from a static context
Marine m1 = new Marine("모랄레스",60);
^
/root/var/tmp/2020_04_06_05_29_19_12364db3/Starcraft.java:5: error: non-static variable this cannot be referenced from a static context
Marine m2 = new Marine("레이너",80);
^
2 errors
```
sehongpark님의 답변
# 마린 클래스의 위치
Marin 클래스가 Starcraft 클래스 내부에 선언 되었네요.
마린 클래스를, Starcraft 클래스 외부로 빼보셔요
cijjj님의 답변
```
public class Starcraft {
public static void main (String[] args) {
// 객체 생성
Marine m1 = new Marine("모랄레스",60);
Marine m2 = new Marine("레이너",80);
// 마린의 스팀팩!
m2.stimpack();
m1.heal(m2);
// 메딕의 힐!
}
} // Starcraft
// 이렇게 빼셔야 됩니다.
class Marine{
String name;
int hp;
Marine(String name, int hp){
this.name=name;
this.hp=hp;
}
public void heal(Marine healing){
System.out.printf("[%s]의 치유! => [%s] HP(%d -> ",name, healing.name, healing.hp);
healing.hp+=10;
System.out.printf("%d)",healing.hp);
}
public void stimpack(){
System.out.printf("[%s]의 스팀팩! HP: %d -> ",name, hp);
hp-=10;
System.out.printf("%d",hp);
}
}
```
rladkgus75님의 답변
아..ㅋㅋ 감사합니다