TIL 25.02.03 - Interface, Enums

강진규·2025년 2월 3일

Today I Learned

목록 보기
4/34
post-thumbnail

[ Interface ]

  • 클래스가 구현해야 하는 멤버들을 정의하는 것
  • 클래스의 일종이 아니며, 클래스에 대한 제약 조건을 명시하는 것
  • 클래스가 인터페이스를 구현할 경우, 모든 인터페이스 멤버를 구현해야함
interface IMyInterface		// Interface, 멤버 정의
{
    void Method1();
    void Method2(string s);
}

class MyClass : IMyInterface
{
    public void Method1()
    {
        Console.Write("hi ");		// class에서 구현
    }

    public void Method2(string s)
    {
        Console.WriteLine(s);
    }
}

static void Main(string[] args)
{
    Console.Write("단어를 입력하세요 : ");
    string s = Console.ReadLine();

    MyClass myClass = new MyClass();

    myClass.Method1();
    myClass.Method2(s);
}

Interface 및 멤버를 정의해주고 class에서 구현을 해주면 된다.
Interface는 다중 상속을 제공하고, 코드의 재사용에 용이해서 유연한 설계가 가능하게 해준다.


[ Enums ]

  • 서로 관련된 상수들의 집합을 정의 할때 사용
  • 각 상수는 정수 값으로 지정됨
enum Today			// Enums 정의
{
    Sunday,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
}

static void Main(string[] args)
{
    Today day = Today.Monday;		// Enums 사용
    Console.WriteLine($"오늘은 {day}입니다.");
}

Enums(열거형)은 의미 있는 이름을 사용하여 가독성을 향상되게 해준다.
switch문과 사용할때 분기를 쉽게 작성할 수 있어서 굉장히 유용하다.

enum MyEnum
{
    Value1 = 10,
    Value2,
    Value3 = 20
}

Enums를 정의 할때 값을 지정해줄 수 있는데, 위에 코드에서 Value2는 Value1의 +1인 11이 된다.
지정 해주지 않았을때는 처음엔 0부터 시작되고 +1씩 늘어난다. 형변환도 가능하다.


개인 과제를 하면서 강의자료를 보는데 뭔가 내일 과제를 할때 이녀석들이 유용할 것 같아서
다시 공부해두었다. 머리가 굉장히 말랑말랑 해지면서도 정수리가 뜨거웠다.

0개의 댓글