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 |