Kotlin Enum (열거형)
안녕하세요! 이번 포스팅에서는 코틀린에서 제공하는 열거형(Enum)에 대해 알아보겠습니다. 열거형은 상수를 선언하고 사용하기 위한 편리하고 간결한 방법을 제공하여 코드의 가독성을 높이고 안전성을 강화하는데 도움을 줍니다.
열거형(Enum)
- 프로그램 개발 시 특정 그룹 안의 구성 요소를 정의하는 값이 필요하고자 할 때 사용한다.
- 열거형은 단어 자체가 프로그램에서 사용하는 값이 된다.
열거형(Enum)이란?
열거형은 서로 연관된 상수들의 집합을 정의하는 특별한 데이터 타입입니다. 예를 들어, 요일(월요일, 화요일 등)이나 계절(봄, 여름, 가을, 겨울)과 같이 고정된 값들을 나타내는 경우에 유용하게 사용됩니다.
코틀린에서는 enum 키워드를 사용하여 열거형을 정의할 수 있습니다.
아래는 enum 키워드를 통해서 요일에 대해서 열거형을 정의해보았습니다.
enum class Weekday {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
아래는 enum 키워드를 통해서 방향에 대해서 열거형을 정의해보았습니다.
enum class Direction {
NORTH, SOUTH, WEST, EAST
}
fun main() {
printDiection(Direction.EAST)
printDiection(Direction.SOUTH)
}
enum class Direction {
NORTH, SOUTH, WEST, EAST
}
fun printDiection(a1: Direction) {
when (a1) {
Direction.NORTH -> println("북쪽입니다.")
Direction.SOUTH -> println("남쪽입니다.")
Direction.WEST -> println("서쪽입니다.")
Direction.EAST -> println("동쪽입니다.")
}
}
결과값 >
동쪽입니다.
남쪽입니다.
열거형 상수 사용하기
열거형의 각 상수는 자체적인 인스턴스이며, 해당 열거형 타입의 값으로 사용될 수 있습니다. 열거형 상수는 enum class명.상수명 형태로 참조할 수 있습니다.
위의 예제에서는 Weekday.WEDNESDAY를 통해 해당 열거형의 상수를 참조하고 있습니다.
val weekday: Weekday = Weekday.WEDNESDAY
println("오늘은 ${weekday}입니다.")
열거형의 추가 정보
코틀린의 열거형은 각 상수에 추가 정보를 저장할 수 있습니다. 이를 활용하여 각 상수에 특정 값을 할당하거나 메소드를 정의할 수 있습니다.
enum class Month(val numberOfDays: Int) {
JANUARY(31),
FEBRUARY(28),
MARCH(31),
APRIL(30),
MAY(31),
JUNE(30),
JULY(31),
AUGUST(31),
SEPTEMBER(30),
OCTOBER(31),
NOVEMBER(30),
DECEMBER(31);
}
위의 예제에서는 각 월의 일 수를 추가 정보로 지정하였고, 해당 달의 이름을 이용하여 아래와 같이 해당 달이 몇일 인지 구하는 함수를 작성할 수 있습니다.
val month: Month = Month.FEBRUARY
println("${month.name} has ${month.numberOfDays} days.")
결과값 >
FEBRUARY has 28 days.
결론
코틀린의 열거형을 사용하면 상수 값을 명확하게 정의하고, 가독성과 유지보수성을 향상시킬 수 있습니다. 열거형은 또한 추가 정보와 메소드를 함께 정의하여 더욱 강력한 기능을 제공합니다. 개발 시 상수 값이 필요한 경우 항상 열거형을 고려해보는 것이 좋습니다.
이상으로 코틀린의 열거형에 대한 간단한 소개였습니다. 즐거운 코딩되세요!
댓글
댓글 쓰기