본문 바로가기

개발 중얼거림

[Kotlin] Sealed class vs Enum

AI의 답
결론 : Enum은 간단한 선택 목록을 만들 때 사용하고, Sealed Class는 관련된 여러 종류의 데이터를 하나로 묶을 때 사용한다고 생각하면 돼요.

  1. 열거형 (Enum)
    열거형은 미리 정해진 선택지들의 목록이에요. 예를 들어, 일주일의 요일을 생각해봐요:
enum class 요일 {
    월요일, 화요일, 수요일, 목요일, 금요일, 토요일, 일요일
}

이렇게 하면 요일은 이 7개 중 하나만 될 수 있어요. 더 추가할 수 없고, 각각은 똑같은 종류의 데이터예요.

  1. 봉인 클래스 (Sealed Class)
    봉인 클래스는 열거형보다 조금 더 자유로워요. 여러 종류의 관련된 데이터를 하나로 묶을 수 있어요. 예를 들어, 학교 구성원을 생각해봐요:
sealed class 학교구성원 {
    class 학생(val 학년: Int, val 반: Int) : 학교구성원()
    class 선생님(val 담당과목: String) : 학교구성원()
    object 교장선생님 : 학교구성원()
}

이렇게 하면 학교 구성원은 학생, 선생님, 교장선생님 중 하나가 되는데, 각각 다른 정보를 가질 수 있어요.

주요 차이점:

  1. 다양성: Enum은 같은 종류의 항목만 나열하지만, Sealed Class는 다양한 종류의 데이터를 포함할 수 있어요.
  2. 유연성: Enum은 고정된 값만 가질 수 있지만, Sealed Class는 각 항목마다 다른 데이터를 가질 수 있어요.
  3. 용도: Enum은 간단한 선택 목록에 좋고, Sealed Class는 복잡한 데이터 구조를 표현할 때 유용해요.

'개발 중얼거림' 카테고리의 다른 글

Kotlin 에서 SQLite 쓰기...  (2) 2024.09.02
[Kotlin] 표준 함수 apply와 also의 차이점  (1) 2024.08.29
[Kotlin] Function Reference(::)  (0) 2024.08.29
[Kotlin] invoke란?  (0) 2024.08.29