# 리뷰: 마린과 메딕
정답 예시코드에서
Marine과 Medic의 생성자 정의할때
// 생성자
public Marine(String name, int hp) {
this.name = name;
this.hp = hp;
}
// 생성자
public Medic(String name, int hp) {
this.name = name;
this.hp = hp;
}
이렇게 this.라고 쓰신 걸 보고 질문드립니다
이렇게 쓰는 경우도 있나요?
#### CODE <a class='btn btn-default' href='/codes/49240'>Link</a>
```
public class Starcraft {
public static void main (String[] args) {
// 객체 생성
Marine marine = new Marine("레이너", 80);
Medic medic = new Medic("모랄레스", 60, 60);
// 마린의 스팀팩!
marine.stimpack();
// 메딕의 힐!
medic.heal(marine);
}
}
class Marine{
String name;
int hp;
Marine(String n, int h){
name = n;
hp = h;
}
void stimpack(){
System.out.printf("[%s]의 스팀팩! HP: %d -> ", name, hp);
hp -= 10;
System.out.printf("%d\n", hp);
}
}
class Medic{
String name;
int hp;
int mp;
Medic(String s, int h1, int m){
name = s;
hp = h1;
mp = m;
}
void heal(Marine target){
System.out.printf("[%s]의 치유! => [%s] HP(%d -> ", name, target.name, target.hp);
target.hp += 10;
System.out.printf("%d)", target.hp);
}
}
```
#### INPUT
```
```
#### OUPUT
```
[레이너]의 스팀팩! HP: 80 -> 70
[모랄레스]의 치유! => [레이너] HP(70 -> 80)
```
sehongpark님의 답변
# this 키워드는
생성자에서 입력변수(파라미터)와 필드를 구분하기 위해 자주 사용됩니다.
this 키워드는 메소드 수행의 주체 객체를 가리키는데요.
현재 학습중인 생성자를 지나, 추후 학습하게 될 내용입니다.
(저도 모르게 설명하지 않은 개념을 사용했었군요. 피드백 감사합니다)
관련 문제: https://cloudstudying.kr/challenges/402