안드로이드 개발자의 창고
[17일차 kotlin] 열거형 클래스(Enum Class) 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 열거형 클래스
- 프로그램 개발 시 특정 그룹안의 구성 요소를 정의하는 값이 필요하고자 할 때 사용한다.
- 열거형은 정의한 단어 자체가 프로그램에서 사용하는 값이 된다.
- 월을 나타내는 단어들, 혈액형을 나타내는 단어들, 방향, 성별 등등
📖 예제 코드
기본 Enum Class
fun main() {
printDirection(Direction.NORTH) // 북쪽입니다
printDirection(Direction.WEST) // 서쪽입니다
}
// 열거형 정의
enum class Direction{
NORTH, SOUTH, WEST, EAST
}
fun printDirection(a1:Direction){
when(a1) {
Direction.NORTH -> println("북쪽입니다")
Direction.SOUTH -> println("남쪽입니다")
Direction.WEST -> println("서쪽입니다")
Direction.EAST -> println("동쪽입니다")
}
}
companion을 활용한 Enum Class
fun main() {
printDirection2(2) // 서쪽입니다
printDirection2(3) // 동쪽입니다
}
// companion
class Direction2{
companion object{
val NORTH = 0
val SOUTH = 1
val WEST = 2
val EAST = 3
}
}
fun printDirection2(a1:Int){
when(a1) {
Direction2.NORTH -> println("북쪽입니다")
Direction2.SOUTH -> println("남쪽입니다")
Direction2.WEST -> println("서쪽입니다")
Direction2.EAST -> println("동쪽입니다")
}
}
사용자 정의 Enum Class
fun main() {
printNumber(Number.TWO) // TWO 입니다 / TWO 입니다 / 이입니다
}
enum class Number(var num:Int, val str:String){
ONE(1,"일"), TWO(2,"이"),THREE(3,"삼")
}
fun printNumber(a1:Number){
when(a1){
Number.ONE -> println("ONE 입니다")
Number.TWO -> println("TWO 입니다")
Number.THREE -> println("THREE 입니다")
}
when(a1.num){
1 -> println("ONE 입니다")
2 -> println("TWO 입니다")
3 -> println("THREE 입니다")
}
when(a1.str){
"일" -> println("일입니다")
"이" -> println("이입니다")
"삼" -> println("삼입니다")
}
}
✔️ 코드 해석
- enum class Number(var num:Int, val str:String){ ... }
- 열거형을 정의할 때 값도 설정할 수 있다.
- 주 생성자는 열거형 하나를 만드는 양식을 의미한다.
- 변수의 개수는 무제한이다.
'Computer > Kotlin' 카테고리의 다른 글
[18일차 Kotlin] 고차 함수 (0) | 2023.05.23 |
---|---|
[17일차 Kotlin] Sealed Class (0) | 2023.05.20 |
[17일차 Kotlin] Null 안전성을 위한 형변환(Null Casting) (0) | 2023.05.20 |
[17일차 Kotlin] Casting(캐스팅) (0) | 2023.05.20 |
[16일차 Kotlin] Null 처리(!! 연산자, ?: 연산자, ?. 연산자) (0) | 2023.05.20 |