Enum Class

💀LeeSY·2022년 7월 30일
0
post-thumbnail

Enum Class

  • 특정 상태를 지정하는 상수들을 클래스 내부에 고유 값으로 만들어 사용
  • 소스코드의 가독성을 높이는데 기여한다.
  • 상수 값의 타입 안전성을 보장한다.
enum class EnumTest {
    Naver,
    Google,
    Yahoo,
    Daum
}

fun getPortalType(s : String) {
    when (s) {
        "naver" -> EnumTest.Naver
        "google" -> EnumTest.Google
        "yahoo" -> EnumTest.Yahoo
        else -> EnumTest.Daum
    }
}
  • 각 열거 자료형은 enum 클래스의 인스턴스이기 때문에 다음과 같이 초기화 가능
enum class Color(val rgb: Int, val colorName: String) {
    RED(0xFF0000, "red"),
    GREEN(0x00FF00, "green"),
    BLUE(0x0000FF, "blue")
}

With Interface

  • 다음과 같이 인터페이스 상속을 통해서도 enum class 선언이 가능하다.
enum class GetLanguage(s: String) : Languages {
    JAVA("java") {
        override fun getLang(): String = "JAVA"
    },
    KOTLIN("kotlin") {
        override fun getLang(): String = "KOTLIN"
    },
    PYTHON("python") {
        override fun getLang(): String = "PYTHON"
    }
}
profile
A little strange but passionate, sincere hard worker.

0개의 댓글

관련 채용 정보