티스토리 뷰

IT/Kotlin

[Kotlin] Enum class

forest-33 2024. 4. 8. 21:59

 

Enum class

  • 코틀린에서 Enum 클래스는 서로 연관된 상수들의 집합을 나타냄
  • 이러한 상수들은 보통 연관된 열거형 값으로 사용
enum class Direction {
    NORTH,
    SOUTH,
    EAST,
    WEST
}

// java
public enum Direction {
    NORTH, SOUTH, EAST, WEST;
}

 

 

생성자와 속성: 각 Enum 상수는 자체 생성자 매개변수와 속성을 가질 수 있음

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

 

메서드 : Enum 클래스는 메서드도 정의 가능

enum class Direction {
    NORTH {
        override fun printMessage() {
            println("You are moving NORTH")
        }
    },
    SOUTH {
        override fun printMessage() {
            println("You are moving SOUTH")
        }
    },
    EAST {
        override fun printMessage() {
            println("You are moving EAST")
        }
    },
    WEST {
        override fun printMessage() {
            println("You are moving WEST")
        }
    };

    abstract fun printMessage()
}

fun main() {
    Direction.NORTH.printMessage() // 출력: You are moving NORTH
    Direction.SOUTH.printMessage() // 출력: You are moving SOUTH
}

 

 

Enum 클래스의 확장: Enum 클래스에 확장 함수를 정의하여 기능을 추가

  • JAVA는 불가능
enum class Direction {
    NORTH, SOUTH, EAST, WEST
}

fun Direction.isFacingNorth() = this == Direction.NORTH

fun main() {
    val direction = Direction.NORTH
    println(direction.isFacingNorth()) // 출력: true
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함