📌 This 키워드란 클래스의 현재 인스턴스를 가리키는 키워드이다
class Car
{
string name;
public Car(string name)
{
this.name = name;
}
}
this키워드의 특징
예를들어 두 캐릭터가 전투를 한다고 가정해보자 캐릭터 클래스를 정의하고 멤버변수로 이름과 공격력 그리고 체력을 정의 했을때
class Character
{
public string name;
public float attackDamage;
public float hp;
public float maaxHp;
Character(string name, int damage, int maxHp)
{
this.name = name;
this.damage = damage;
this.maxHp = maxHp;
this.hp = this.maxHp;
}
}
☝ 위와같이 캐릭터 생성시 필드 초기화를 위해 생성사 메서드를 정의할 것이다. 그럴경우 this 키워드를 사용해 멤버 변수들을 초기화 할 수 있다
👇 공격하는 기능과 피해를 받는 기능을 메서도르 정의한후
public void Attack(Character target)
{
target.Hit(this.damage);
}
public void Hit(int damage)
{
this.hp -= damage;
}
<var hong = new Character("홍길동", 3, 10);
var lim = new Character("임꺽정", 2, 12);
// 이름 : 홍길동, 임꺽정
// 공격력 : 3, 2
// 체력 : 10, 12
hong.Attack(lim);
위와같이 홍길동이 임꺽정을 매개변수로 Attack 메소드를 호출하면 임꺽정의 체력에서 피해량을 빼준다
다음과같이 this키워드를 이용하여 공격 프로세스를 진행할 수 있다