[C#] 객체 지향 프로그래밍

Learning 

When: 1학년 6월 21일

 

How: C#은 객체 지향 프로그래밍 방식을 사용한다고만 들었고, “객체 지향으로 프로그래밍한다는 게 뭔지”,
또 “객체 지향이 아닌 방식은 어떤 건지” 정확히 알지 못했기 때문에 공부를 시작하게 되었습니다.

 

Understanding:

    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++;
        }
    }

이 코드는 ‘고양이’라는 객체를 만들기 위한 클래스입니다.
new Cat("Pimpi", 2);처럼 생성자를 통해 여러 마리 고양이 인스턴스를 만들 수 있습니다.

저는 중학교 때부터
“왜 굳이 고양이를 여러 종류로 나눠서, 값만 다르게 객체를 생성해야 하지?”
라는 생각이 머릿속에 박혀 있어서 그 개념을 쉽게 이해하지 못하였습니다.

그래서 이번엔 Unity 예시로 바꿔서 생각해 보았습니다.


예를 들어 적 캐릭터인 Enemy를 만든다고 하겠습니다. Enemy에 사용되는 정보에는 hp, 공격력 등이 있을 것입니다. 모든 Enemy가 같은 능력치를 공유하고 있다면 상관 없겠지만, hp나 공격력이 다른 Enemy를 만들 때 절차 지향으로 작성한다면 클래스를 하나 더 만들어야 합니다. 하지만 객체 지향에서는 똑같이 생성하고 값만 바꿔주면 됩니다. (위에서 Cat의 age나 name을 바꾸는 것처럼) 이것으로 확실히 까지는 아니더라도 어느 정도 감이 잡혔으면 좋겠습니다.



Result: 객체 지향 프로그래밍은 객체(클래스)를 생성해서 프로그래밍을 하는 방식이며,
각 객체마다 데이터를 다르게 설정할 수 있다는 큰 장점이 있습니다.
특히 게임처럼 다양한 캐릭터나 상태가 필요한 경우에 매우 유용합니다.

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

[C#] const 키워드  (0) 2025.06.24
[C#] static 키워드  (0) 2025.06.22
절차 지향 프로그래밍  (0) 2025.06.20
[C#] as 키워드  (0) 2025.06.19
[C#] try~catch 문  (0) 2025.06.12