객체 지향 프로그래밍(OOP)의 핵심 개념인 클래스, 객체, 상속, 다형성, 캡슐화에 대한 간단한 예시를 C#으로 보여드리겠습니다.
1. 클래스와 객체
클래스는 설계도에 비유할 수 있고, 객체는 그 설계도를 바탕으로 만들어진 실체를 의미합니다.
public class Dog
{
public string Name { get; set; }
public void Bark()
{
Console.WriteLine($"{Name}가 멍멍 짖습니다.");
}
}
// 객체 생성
Dog myDog = new Dog();
myDog.Name = "맥스";
myDog.Bark(); // "맥스가 멍멍 짖습니다." 출력
2. 상속
클래스 간에 코드를 재사용하고 확장할 수 있도록 하는 개념입니다.
public class Animal
{
public string Name { get; set; }
public void Eat()
{
Console.WriteLine($"{Name}가 먹이를 먹습니다.");
}
}
public class Cat : Animal
{
public void Meow()
{
Console.WriteLine("야옹");
}
}
Cat myCat = new Cat();
myCat.Name = "루시";
myCat.Eat(); // "루시가 먹이를 먹습니다." 출력
myCat.Meow(); // "야옹" 출력
3. 다형성
하나의 인터페이스나 클래스를 여러 방식으로 동작하게 할 수 있는 능력입니다.
public class Bird : Animal
{
public void Sing()
{
Console.WriteLine("짹짹");
}
}
void MakeAnimalSound(Animal animal)
{
if (animal is Cat)
{
(animal as Cat).Meow();
}
else if (animal is Bird)
{
(animal as Bird).Sing();
}
}
MakeAnimalSound(myCat); // "야옹" 출력
4. 캡슐화
클래스 내부의 데이터나 상태를 숨기고, 그 상태를 변경할 수 있는 특정 메서드만 외부에 노출하는 것입니다.
public class Car
{
private int fuel;
public int Fuel
{
get { return fuel; }
set
{
if (value >= 0)
{
fuel = value;
}
}
}
public void Drive()
{
if (fuel > 0)
{
fuel -= 10;
Console.WriteLine("차가 주행합니다.");
}
else
{
Console.WriteLine("연료가 부족합니다.");
}
}
}
Car myCar = new Car();
myCar.Fuel = 50;
myCar.Drive();
이렇게 객체 지향 프로그래밍의 기본 개념들은 코드의 재사용성, 확장성, 유지 보수의 용이성 등 많은 이점을 가져다 줍니다.
'워크 > C# 1.0' 카테고리의 다른 글
속성(Properties) 및 인덱서(Indexers) (0) | 2023.08.24 |
---|---|
통합된 Exception Handling (0) | 2023.08.24 |
Garbage Collection (0) | 2023.08.24 |
Type-Safe 언어 (0) | 2023.08.24 |
C# 1.0의 주요 특징: 초창기의 혁신 (0) | 2023.08.24 |