[C#] static 키워드

Learning 

When: 1학년 6월 22일

 

How:

학교에서 static에 대해 배웠는데, 수업만으로는 완벽하게 이해가 된 것 같지 않아서 공부를 하게 되었습니다.

 

Understanding:

static은 클래스에 소속되는 메서드나 변수 등에 붙는 키워드인데,
이 키워드가 붙은 건 객체를 만들었을 때 생기는 게 아니라, 클래스 자체에 붙어 있게 됩니다.

이게 무슨 말이냐 하면, 보통 클래스는 설계도일 뿐이고, 그 클래스로 객체를 만들어서 객체를 통해 뭔가를 하는 게 일반적인 C#의 사용 방식입니다. 하지만 예를 들어, 지금까지 만든 객체의 수를 세야 한다고 해봅시다.
그럴 때마다 각 객체가 자기 속성으로 객체 수를 가지는 건 말이 안 되니까,
클래스에 직접 붙은 변수(static)를 만들어서 객체가 생성될 때마다 그 값을 1씩 증가시키면 됩니다.

    internal class Cat
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public static int Count { get; set; }

        public Cat(string name, int age)
        {
            Name = name;
            Age = age;

            Count++;
        }
    }

이처럼 static을 사용하면,
Count는 객체마다 따로 존재하는 게 아니라 Cat 클래스 자체가 하나만 갖고 있는 값이 됩니다.
그래서 Cat.Count처럼 객체를 만들지 않고도 사용할 수 있습니다.

이건 실제로 게임 개발에서도 진짜 자주 쓰이는 개념이라서
정확히 이해해 두면 큰 도움이 될 거라고 생각합니다.

 

Result: static으로 수식된 것은 객체와는 별개로 클래스 자체에 소속되기 때문에,
객체를 생성하지 않아도 클래스명.변수 또는 클래스명.메서드() 형식으로 사용할 수 있습니다.

'C#' 카테고리의 다른 글

[C#] enum 키워드  (0) 2025.06.25
[C#] const 키워드  (0) 2025.06.24
[C#] 객체 지향 프로그래밍  (0) 2025.06.21
절차 지향 프로그래밍  (0) 2025.06.20
[C#] as 키워드  (0) 2025.06.19