2-4. 25조 천지창조

keubung·2024년 9월 25일

인터페이스 열거형 정리
예외처리(final), 값형 참조형 정리
델리게이트, 람다, LINQ 정리
개인과제 총 정리

인터페이스

1) 특징

  • 인터페이스란 클래스가 구현해야 하는 멤버들을 정의하는 것
  • 인터페이스는 클래스의 일종이 아니며, 클래스에 대한 제약 조건을 명시하는 것
  • 클래스가 인터페이스를 구현할 경우, 모든 인터페이스 멤버를 구현해야 한다.
  • 다중 상속을 지원

2) 사용하는 이유

  • 코드의 재사용성: 다른 클래스에서 해당 인터페이스를 구현하여 동일한 기능을 공유
  • 다중 상속 제공
  • 유연한 설계: 클래스와 인터페이스 간에 느슨한 결합

인터페이스 및 멤버 정의

interface IMyInterface
{
    void Method1();
    int Method2(string str);
}

인터페이스 구현

class MyClass : IMyInterface
{
    public void Method1()
    {
        // 구현
    }

    public int Method2(string str)
    {
        // 구현
        return 0;
    }
}

열거형

1) 특징

  • 서로 관련된 상수들의 집합을 정의할 때 사용
  • 열거형의 각 상수는 정수 값으로 지정된다.

2) 사용하는 이유

  • 가독성: 일련의 연관된 상수들을 명명
  • 자기 문서화
  • 스위치 문과의 호환성

열거형 정의

enum MyEnum
{
    Value1,
    Value2,
    Value3
}

열거형 사용

MyEnum myEnum = MyEnum.Value1;

열거형 상수 값 지정

  • 지정되지 않으면 가장 첫 번째 값은 1로 할당
  • 지정한 다음의 지정하지 않은 부분은 이 전 값의 + 1
enum MyEnum
{
    Value1 = 10,
    Value2,
    Value3 = 20
}

Value2는 11

스위치 문과의 사용

switch(enumValue)
{
    case MyEnum.Value1:
        // Value1에 대한 처리
        break;
    case MyEnum.Value2:
        // Value2에 대한 처리
        break;
    case MyEnum.Value3:
        // Value3에 대한 처리
        break;
    default:
        // 기본 처리
        break;
}

예외 처리(try-catch)

-- 생략 --

  • finally 블록
    • finally 블록은 예외 발생 여부와 상관없이 항상 실행되는 코드 블록
    • 예외 처리의 마지막 단계로, 예외 발생 시의 정리 작업이나 리소스 해제 등의 코드를 포함 가능
    • try-catch 블록 뒤에 작성되며, 생략 가능
  • 사용자 정의 예외
    • 사용자 정의 예외 클래스는 Exception 클래스를 상속받아 작성하며, 추가적인 기능이나 정보를 제공할 수 있다.

예시 코드

public class NegativeNumberException : Exception
{
    public NegativeNumberException(string message) : base(message)
    {
    }
}

try
{
    int number = -10;
    if (number < 0)
    {
        throw new NegativeNumberException("음수는 처리할 수 없습니다.");
    }
}
catch (NegativeNumberException ex)
{
    Console.WriteLine(ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("예외가 발생했습니다: " + ex.Message);
}

값형 참조형 정리
델리게이트, 람다, LINQ 정리
개인과제 총 정리

profile
김나영(Unity_6기)

0개의 댓글