# 리뷰: 마린과 메딕 정답 예시코드에서 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) ```
# this 키워드는 생성자에서 입력변수(파라미터)와 필드를 구분하기 위해 자주 사용됩니다. this 키워드는 메소드 수행의 주체 객체를 가리키는데요. 현재 학습중인 생성자를 지나, 추후 학습하게 될 내용입니다. (저도 모르게 설명하지 않은 개념을 사용했었군요. 피드백 감사합니다) 관련 문제: https://cloudstudying.kr/challenges/402