반응형
코틀린 열거형(enum) 예제
코틀린에서 enum 클래스는 이름 지정된 상수 집합을 정의하는 데 사용됩니다.
enum은 열거형이라고도 하며, 제한된 값 집합을 나타낼 때 유용합니다.
예를 들어 요일, 계절, 방향 등을 나타낼 때 enum을 사용할 수 있습니다.
다음은 코틀린에서 enum을 정의하고 사용하는 다양한 예제입니다.
1. 기본적인 enum 클래스 정의
enum class 키워드를 사용하여 enum 클래스를 정의합니다. 각 상수는 쉼표로 구분합니다.
enum class Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
fun main() {
val today = Weekday.FRIDAY
println(today) // 출력: FRIDAY
}
2. enum 클래스에 값 추가
enum 상수에 값을 추가할 수 있습니다. 예를 들어 요일 enum에 한국어 이름을 추가할 수 있습니다.
enum class Weekday(val koreanName: String) {
MONDAY("월요일"), TUESDAY("화요일"), WEDNESDAY("수요일"),
THURSDAY("목요일"), FRIDAY("금요일"), SATURDAY("토요일"), SUNDAY("일요일")
}
fun main() {
val today = Weekday.FRIDAY
println("${today.koreanName}은 ${today}입니다.") // 출력: 금요일은 FRIDAY입니다.
}
3. enum 클래스에 메서드 추가
enum 클래스에 메서드를 추가하여 enum 상수와 관련된 작업을 수행할 수 있습니다.
enum class Color(val rgb: Int) {
RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF);
fun isPrimary(): Boolean {
return this == RED || this == GREEN || this == BLUE
}
}
fun main() {
val color = Color.RED
println(color.rgb) // 출력: 16711680
println(color.isPrimary()) // 출력: true
}
4. when 표현식과 함께 사용
when 표현식을 사용하여 enum 클래스의 값에 따라 다른 작업을 수행할 수 있습니다.
enum class Direction {
NORTH, SOUTH, EAST, WEST
}
fun main() {
val direction = Direction.NORTH
when (direction) {
Direction.NORTH -> println("북쪽")
Direction.SOUTH -> println("남쪽")
Direction.EAST -> println("동쪽")
Direction.WEST -> println("서쪽")
}
}
5. enum 클래스의 프로퍼티
enum 클래스는 name과 ordinal 프로퍼티를 제공합니다.
- name: enum 상수의 이름을 문자열로 반환합니다.
- ordinal: enum 상수의 순서를 0부터 시작하는 정수로 반환합니다.
enum class Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
fun main() {
val today = Weekday.FRIDAY
println(today.name) // 출력: FRIDAY
println(today.ordinal) // 출력: 4
}
6. 추상 메서드
enum 클래스는 추상 메서드를 가질 수 있으며, 각 enum 상수에서 이를 구현해야 합니다.
enum class Shape {
CIRCLE {
override fun draw() {
println("원을 그립니다.")
}
},
RECTANGLE {
override fun draw() {
println("사각형을 그립니다.")
}
};
abstract fun draw()
}
fun main() {
Shape.CIRCLE.draw() // 출력: 원을 그립니다.
}
enum 클래스는 코드를 더 읽기 쉽고 유지 관리하기 쉽게 만드는 데 도움이 되므로, 제한된 값 집합을 다룰 때 활용하면 좋습니다.
반응형
'Kotlin' 카테고리의 다른 글
코틀린 콜렉션 타입 변환 예제 (0) | 2025.02.01 |
---|---|
코틀린 집합형(setOf) 예제 (0) | 2025.02.01 |
코틀린 맵 예제 (mapOf(), mutableMapOf(), HashMap()) (0) | 2025.02.01 |
코틀린 함수 예제 (0) | 2025.02.01 |
코틀린 forEach, forEachIndexed 반복문 예제 (0) | 2025.02.01 |