본 글은 https://kotlinlang.org/docs/home.html 를 기반으로 작성자 마음대로 번역한 글입니다.
오역 & 의역이 빈번하며 모든 질문 및 태클 환영합니다!
2022-05-17 기준으로 작성되었습니다.
enum 클래스의 가장 기본적인 사용사례는 타입에 안전한 열거형의 구현입니다.
각각의 enum 상수는 객체입니다. enum 상수는 쉼표로 구분됩니다.
각각의 enum은 enum 클래스의 인스턴스이기 때문에, 다음과 같이 초기화될 수 있습니다:
Anonymous classes
enum 상수는 기본 메소드 오버라이딩과 같이 대응하는 메소드를 가지고 그들의 익명 클래스를 선언할 수 있습니다.
enum 클래스가 멤버를 정의하는 경우, 세미콜론으로 멤버 정의와 상수 정의를 구분합니다.
Implementing interfaces in enum classes
enum 클래스는 인터페이스를 구현할 수 있지만(클래스에서 파생될 수는 없습니다.) 모든 항목에 인터페이스 멤버의 공통 구현을 제공하거나, 익명 클래스의 각 항목에 대해 개별 구현을 제공합니다. 구현하려는 인터페이스를 다음과 같이 enum 클래스의 선언에 추가하면 됩니다:
Working with enum constants
코틀린의 enum 클래스는 정의된 enum 상수의 리스트를 얻거나 이름으로 enum 상수를 얻을 수 있는 합성 메소드를 가집니다. 이러한 메소드들의 시그니쳐는 다음과 같습니다(enum 클래스의 이름이 EnumClass라고 가정합니다.):
valueOf() 메소드는 주어진 이름이 클래스에 정의된 enum 상수의 무엇과도 일치하지 않는다면 IllegalArgumentException을 발생시킵니다.
enumValues<T>()와 enumValueOf<T>() 함수를 사용하여 제네릭 방식으로 enum 클래스의 상수에 접근할 수 있습니다.
모든 enum 상수는 이름와 enum 클래스 선언에서의 위치를 포함하는 프로퍼티를 가집니다.
enum 상수는 Comparable↗ 인터페이스를 구현하며, enum 클래스에서 선언된 순서가 기본적인 순서입니다.
https://kotlinlang.org/docs/enum-classes.html
Enum classes | Kotlin
kotlinlang.org
'Kotlin > Docs' 카테고리의 다른 글
[Kotlin Docs] Nested and inner classes (0) | 2022.05.13 |
---|---|
[Kotlin Docs] Generics: in, out, where (0) | 2022.05.04 |
[Kotlin Docs] Sealed classes (0) | 2022.04.08 |
[Kotlin Docs] Data classes (0) | 2022.04.07 |
[Kotlin Docs] Extensions (0) | 2022.04.07 |