KOTLIN · 기초 문법
열거형 클래스 (Enum Class)
enum class는 상수 집합을 정의하며, 프로퍼티와 메서드를 가질 수 있습니다. 추상 메서드를 통해 각 상수별 동작도 정의 가능합니다.
기초 문법중급enumentriesvalueOfordinal
핵심 설명
enum class는 상수 집합을 정의하며, 프로퍼티와 메서드를 가질 수 있습니다. 추상 메서드를 통해 각 상수별 동작도 정의 가능합니다.
Kotlin code
enum class Direction(val dx: Int, val dy: Int) {
NORTH(0, -1),
SOUTH(0, 1),
EAST(1, 0),
WEST(-1, 0);
fun opposite(): Direction = when (this) {
NORTH -> SOUTH
SOUTH -> NORTH
EAST -> WEST
WEST -> EAST
}
}
fun main() {
val dir = Direction.EAST
println("${dir.name}: dx=${dir.dx}, dy=${dir.dy}")
println("반대: ${dir.opposite()}")
// values()와 valueOf()
Direction.entries.forEach { println(it) }
val south = Direction.valueOf("SOUTH")
println("ordinal: ${south.ordinal}")
}학습 팁
Kotlin 1.9+에서는 values() 대신 entries 프로퍼티를 사용하세요. 매 호출마다 배열을 복사하지 않아 성능이 더 좋습니다.
주의할 점
valueOf()에 존재하지 않는 이름을 전달하면 IllegalArgumentException이 발생합니다. 사용자 입력에는 entries.find를 사용하세요.
자주 묻는 질문
열거형 클래스 (Enum Class)란 무엇인가요?
enum class 는 상수 집합을 정의하며, 프로퍼티와 메서드를 가질 수 있습니다. 추상 메서드를 통해 각 상수별 동작도 정의 가능합니다.
열거형 클래스 (Enum Class) 학습 시 주의할 점은 무엇인가요?
valueOf() 에 존재하지 않는 이름을 전달하면 IllegalArgumentException 이 발생합니다. 사용자 입력에는 entries.find 를 사용하세요.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.