Enum Classes

h_hi·2021년 3월 6일
0

kotlin

목록 보기
10/10

Enum Classes

코틀린 또한 자바와 같이 enum class 를 지원합니다. 코틀린에서의 사용법은 아래와 같습니다.

enum class Color(val rgb: Int) {
    RED(0XFF0000), GREEN(0X00FF00), BLUE(0X0000FF)
}

fun main() {
    for (item in Color.values()) {
        println("item : $item , rgb : ${item.rgb}")
    }
    println("Enum Class.values : ${Color.values()}")
    println("Enum class.valueOfRGB : ${Color.valueOf("RED").rgb}")
}

자바와 같이 생성자, 필드, 메소드를 선언할 수 있으며 values, valueOf 메소드로 인스턴스들을 불러올 수 있습니다.

Anonymous Classes

enum 은 자신의 익명 클래스(Anonymous Class) 를 선언할 수 있습니다. 익명 클래스에서 멤버들을 정의할 때, enum 상수 정의와 메소드를 ;(세미콜론) 으로 구분해야 합니다.

enum class ProtocolState {
    WAITING {
        override fun signal() = TALKING
    },

    TALKING {
        override fun signal() = WAITING
    };

    abstract fun signal(): ProtocolState
}

Reference

kotlin_lang

profile
안드로이드, flutter 개발자

0개의 댓글