Kotlin/포스팅

코틀린 이넘(enum) 클래스

짜집퍼박사(짜박) 2023. 12. 31. 11:50

코틀린(Kotlin)에서 enum class는 열거형을 정의하는 데 사용되는 특별한 형태의 클래스입니다. 자바(Java)에서의 열거형과 비슷하지만 몇 가지 차이가 있습니다. 코틀린의 enum class는 강력하면서도 유연한 열거형을 정의하는 데 도움이 됩니다.

아래는 간단한 코틀린 enum class의 예제입니다.

enum class Color {
    RED, GREEN, BLUE
}

이 예제에서 Color는 enum class이며, 이넘 상수로 RED, GREEN, BLUE가 있습니다.

 

1. 값과 메서드 추가

코틀린의 enum class는 각 열거형 상수에 값을 할당할 수 있으며, 각 상수에 메서드를 추가할 수도 있습니다.

enum class Color(val rgb: Int) {
    RED(0xFF0000),
    GREEN(0x00FF00),
    BLUE(0x0000FF);

    fun toHexString(): String {
        return Integer.toHexString(rgb)
    }
}

이 예제에서는 Color 열거형이 정수 RGB 값을 가지고 있으며, toHexString라는 메서드를 사용하여 RGB 값을 16진수 문자열로 변환하는 메서드를 추가했습니다.

 

2. 속성과 메서드의 사용

이제 Color 열거형을 사용하는 방법을 살펴보겠습니다.

fun main() {
    val redColor = Color.RED
    println("Red color RGB: ${redColor.rgb}")
    println("Red color Hex: ${redColor.toHexString()}")
}

위의 예제에서는 Color.RED를 사용하여 Color 열거형의 하나의 상수를 얻고, 그 상수의 속성과 메서드를 사용하여 정보를 출력하고 있습니다.

 

3. when 표현식과 열거형

when 표현식은 코틀린에서 switch와 유사하게 동작하며, enum class와 함께 사용될 때 매우 유용합니다.

fun getColorName(color: Color): String {
    return when (color) {
        Color.RED -> "Red"
        Color.GREEN -> "Green"
        Color.BLUE -> "Blue"
    }
}

이 함수는 Color 열거형을 입력으로 받아 해당하는 색상 이름을 반환합니다.

이렇게 코틀린의 enum class를 사용하면 코드를 더 간결하고 안전하게 작성할 수 있습니다.

 

With ChatGPT