C# & 유니티/C#

클래스, 인스턴스

감조자림 2023. 4. 8. 20:11

클래스는 붕어빵 틀, 인스턴스는 그 틀에서 찍혀나온 붕어빵.

Player라는 이름의 클래스가 있을 때, Player 클래스 내부에 있는 메서드나 변수를 사용하려면

Player.메서드명 (또는 변수명) 을 쓴다. 

마침표가 나오면 해당 클래스 내부에 있는 어떠한 메서드 또는 변수를 사용하겠다는 의미이다.

인스턴스를 만들기 위해선 Player myPlayer = new Player(); 이런식으로 하면 된다. 

Player는 클래스의 이름이고 myPlayer라는 이름의 인스턴스가 만들어지게 된다.

 

public과 private 이라는 접근 수식자가 있다. 변수나 메서드, 클래스 등을 선언할 때, 앞에 붙인다. 아무것도 붙이지 않으면 private으로 간주된다. public으로 선언된 것은 다른 클래스에서도 호출 가능하지만, private은 다른 클래스에서 호출이 불가능하다. 다른사람이 내가 만든 클래스를 사용할 때, private이 붙은 것은 사용하지 말라는 의미로 쓰인다고 한다. 

 

 메서드 내에서 this. 이라는 키워드를 사용한다. 이것이 의미하는 것은 해당 메서드를 포함하는 클래스 내부에 있는~ 이라는 뜻이다. 이것이 왜 필요하냐면,

public class Player
{ 
    private int hp = 100;
    
    public void PrintHp()
    {
    	int hp = 150;
    	Debug.Log(hp);
    }

}

클래스 내부의 멤버 변수와 메서드 내부의 로컬 변수가 이름이 같은 경우(위 코드에서 hp라는 동일한 이름을 가진 변수가 클래스 내부에 하나, 메서드 내부에 하나가 있다.) this를 붙이지 않으면 메서드 내부의 변수를 사용한다. this를 붙이면 클래스 내부의 변수를 사용한다.