본문 바로가기
Programming/Kotlin

[Kotlin] 코틀린 뽀개기 - Enum 활용하기

by 코딩의성지 2019. 12. 8.

하이~~!!

 

오늘은 짧고 굵게 글을 쓰고 좀 자려고해 ㅎㅎㅎ

 

오늘 공부해 볼건 아주 간단해 !! 바로바로 이넘이야 이넘 !! Enum!!

 

Enum

 

코틀린에서는 enum 이라는 키워드를 이용해서 만든 클래스를 만들 수 있어!

 

아 ! Enum 은 Enumerated Type  으로 '서로 연관된 상수 값들의 집합' 이야!

 

길게 말하면 머하겠어ㅎㅎ 아래 예제를 보자!

 

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
fun main (args : Array<String>) {
    callFruitName(Fruit.APPLE)
 
    println(Fruit.APPLE)
    println(Fruit.BANANA)
    println(Fruit.ORANGE)
 
    println(Animal.LION)
    println(Animal.TIGER)
    println(Animal.DOG)
}
 
enum class Fruit {
    APPLE, BANANA, ORANGE
}
 
enum class Animal (val animal : String) {
    LION("사자"),
    TIGER("호랑이"),
    DOG("개")
}
 
fun callFruitName(fruit : Fruit) {
    when(fruit) {
        Fruit.APPLE -> println("사과")
        Fruit.BANANA  -> println("바나나")
        Fruit.ORANGE -> println("오렌지")
    }
}
 
 
 

자 먼저 Fruit 를 보자 ㅎㅎ 안에 APPLE, BANANA, ORANGE 이렇게 세 가지가 있어!

왠지 변수같이 생기지 않았니? 그런데 말이야ㅎㅎ 저건 변수가 아냐 ! 값 그자체야. 

 

실제로 얘네를 출력해보면 ( 타입.값 )

 

APPLE

BANANA

ORANE

 

이렇게 출력이 돼! 

 

 그리고 우리가 이 값을 정해줄 수도 있어 !

 

 Animal을 보면 괄호 안에 값을 정해주지 ? 실제로 저 값을 사용하면 (타입.값.상수명)

 

사자

호랑이

 

이렇게 출력이 되는 걸 볼 수 있어. ㅎㅎ 실제 실행결과를 보면 ...!

 

Enum 참 쉽지? 그런데 .. ! 왜 Enum을 쓸까?

 

Enum을 쓰면 먼저 인스턴스 생성을 안해도 되니깐 이 값에 대한 안정성이 보장된다고 할 수 있어 !

그리고 Enum 을 써서 코딩 해놓으면 누가봐도 내 의도가 뭔지를 파악할 수 있어. ㅎㅎ 협업할 때 좋겠지?

또! 코드가 단순해지니깐 가독성이 아주 좋아져 !! ㅎㅎ

 

아무튼 앞으로는 그냥 상수 쓰지말고 Enum 을 써보자 ! 그럼 오늘도 즐거운 코딩!!

 

반응형

댓글