호빵의 IT 개발소

[C#] static 본문

C#, 유니티/C# 기초

[C#] static

호빵Stack 2022. 1. 3. 21:06

public int는 각 인스턴스마다 값이 달라질 수 있다.

static public int는 class에 종속적인 필드가 된다. 즉 오로지 1개만 존재하게 된다.

 

knight 3개를 만들어 1번은 기존 hp 설정했던 100이 설정되고 2번은 knight2.hp를 사용하여 80을 부여하고 3번도 knight3.hp = 60;으로 설정하였습니다. 만약 static public int hp = 100;으로 선언하였다면 각각 다른 hp를 부여하지 못하고 모든 knight들은 hp가 100으로 설정되게 됩니다.

 

static public int counter를 1개로 고정 한 뒤 public int id를 활용하여 id가 한개 생성될때마다 counter 1개를 더해주어 id 변수를 늘릴 수 있도록 사용하였습니다.

 

class Knight
{
	//필드
    static public int counter = 1; //오로지 1개만 존재!

    public int id;
    public int hp;
    public int attack;
    
    public Knight()
    {
    	id = counter;
        counter++;
    	
    	hp = 100;
        attack = 10;
        Console.WriteLine("생성자 호출");
    }
}

class Program
{
	static void Main(string[] args)
    {
    	Knight knight = new Knight();
        
        Knight knight2 = new Knight();
        knight2.hp = 80;
        
        Knight knight3 = new Knight();
        knight3.hp = 60;
    }
}

 

※한줄 요약 : static 즉 정적이라는 키워드를 붙이면 class에 종속적인 필드 또는 함수가 되는 것이고 static을 뺀 상태는 인스턴스에 종속적인 필드 또는 함수가 된다.

 

---------------------------------------------------------------------------------------------------------------------------

참고 : [인프런] Rookiss님의 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

'C#, 유니티 > C# 기초' 카테고리의 다른 글

[C#] 은닉성  (0) 2022.01.03
[C#] 상속성  (0) 2022.01.03
[C#] 스택과 힙  (0) 2022.01.02
[C#] 복사와 참조  (0) 2022.01.02
[C#] 객체지향 기본  (0) 2022.01.02
Comments