언어/Kotlin

[Kotlin] 코틀린 enum 클래스

청포도막대사탕 2025. 5. 11. 13:51
반응형

enum class

여러개의 상수들을 열거해놓은 클래스

값에 대한 명확한 제약이 있는 경우 사용 (선택할 값이 몇가지로 정해져 있는 경우)

enum class Direction {
    NORTH, SOUTH, EAST, WEST
}

val dir = Direction.NORTH

when (dir) {
    Direction.NORTH -> println("북쪽으로 이동")
    Direction.SOUTH -> println("남쪽으로 이동")
    Direction.EAST  -> println("동쪽으로 이동")
    Direction.WEST  -> println("서쪽으로 이동")
}

위와 같이 when과 잘 맞으며 이때는 else를 사용하지 않음

 

기본적으로 enum class 각각의 인스턴스는 name과 ordinal 프로퍼티를 가짐

ordinal은 순차적으로 0부터 값을 가짐

dir.name // "NORTH"
dir.ordinal // 0

 

 

enum class Fruit(price:Int,tag:String){
    GRAPE(3000,"grape"),
    APPLE(2000,"apple"),
    ORANGE(4000,"orange"),
    MANGO(10000,"mango")
}

val fruit = Fruit.GRAPE
fruit.price // 3000
fruit.tag // "grape"

위와 같이 생성자를 가질 수 있으며 인스턴스에도 동일하게 만들어 줘야함


정해진 고정 값들을 사용할 때

안전하고 조건분기를 깔끔하게 처리할 때 enum을 사용

반응형