Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- java
- 개발
- 코틀린
- programers
- 알고리즘
- MVVM
- baekjoon
- 현대sw
- 프로그래머스
- softeer
- Python
- 머신러닝
- aws
- 다트
- 아마존 웹 서비스
- Flutter
- DART
- 안드로이드
- 백준
- 파이썬
- kotlin
- 플러터
- 스위프트
- 코테
- Android
- 소프티어
- SWIFT
- GDSC
- 자바
- VSCode
Archives
- Today
- Total
조준장 개발자 생존기
[Kotlin] enum와 sealed class 본문
Enum class가 뭐야? 🤔
enum class는 상수, 상태값 등 유사한 값을 열거형으로 정의하는 클래스이다. 주로 고유한 값을 사용할 때 활용된다.
- Enum class는 상수, 상태값 등 유사한 값을 열거형 클래스로 정의하여 고유한 값으로 사용할 때 주로 활용된다.
- Enum class는 생성자, 프로퍼티, 메서드, 인스턴스, 변수 등을 가질 수 있다.
- 일반적으로 생성자를 명시적으로 선언하지 않으면 자동으로 디폴트 생성자가 생성된다.
- Enum class는 상속 해줄 수 없으며, 상속 받을 수도 없다.
Sealed class가 뭐야? 🤔
sealed class는 특정 유형의 하위 클래스를 제한하는 데 사용하는 클래스이다. 주로 패턴 매칭과 같은 작업에 유용하다.
*패턴 매칭 : 특정한 패턴을 찾아서 해당하는 동작을 수행하는 기능
- Sealed class는 특정 유형의 하위 클래스를 제한하는 데 사용된다.
- 이 클래스 자체로는 추상 클래스처럼 동작하며, 일반적으로 그것의 하위 클래스를 가진다.
- 이 하위 클래스는 sealed 클래스를 정의하는 파일 안에 있어야 하며, sealed 클래스는 동일한 파일 내의 다른 위치에 있는 하위 클래스를 가질 수 없다.
- Sealed class를 사용하면 유형을 나타내는 클래스 계층 구조를 정의할 때 특정 유형의 하위 클래스를 열거할 수 있다. 이는 패턴 매칭과 같은 작업에 유용하다.
- sealed 클래스의 하위 클래스는 sealed 클래스 자체나 하위 클래스에 대해 패턴 매칭을 수행할 때 컴파일러가 경고하지 않는다.
Enum class와 Sealed class 차이가 뭐야? 🤔
enum class는 한정된 상수 집합을 정의하며, 각 상수는 단순한 고유한 값으로만 구성된다. 반면에 sealed class는 상속을 통한 계층적인 구조를 정의하고 각 하위 클래스가 고유한 속성과 동작을 가질 수 있다.
따라서 사용하는 상황에 따라 적절한 클래스를 선택해야 한다. 예를 들어, 상태를 표현하고 각각의 상태가 다른 속성 및 동작을 가져야 하는 경우 sealed class를 사용할 수 있다. 반면에, 고유한 값으로 한정된 상수 집합을 나타내고자 할 때는 enum class를 사용할 수 있다.
'Develop > Kotlin' 카테고리의 다른 글
[Kotlin] 확장 함수 (0) | 2024.04.03 |
---|---|
[Kotlin] Data class (0) | 2024.04.03 |
[kotlin] Android 4대 컴포넌트 (2) | 2023.08.30 |
[kotlin] 코틀린 기본 문법 (0) | 2022.12.06 |
[kotlin] 객체 지향 프로그래밍 (0) | 2022.12.05 |