enum

  • 타입을 담는 클래스. 열거형 클래스라고도 한다.

//java
enum Color {
    RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF);

    int rgb;
    Color(int color) {
        rgb = color;
    }
}

for(Color color : Color.values()) {
    System.out.println(color);
}
// RED,GREEN,BLUE
//kotlin
enum class Color(val rgb: Int) {
    RED(0xFF0000),
    GREEN(0x00FF00),
    BLUE(0x0000FF);
}

for(color: Color in Color.values()) {
    println(color)
}
//RED,GREEN,BLUE

//코틀린에선 enum class의 생성자부분을 클래스헤더와 같이 작성할 수 있어 코드길이를 줄일 수 있다.

val red: Color = Color.valueOf("RED")
val green: Color = Color.GREEN
val colorList: Array<Color> = Color.values()

//kotlin
enum class Color(val rgb: Int) {
    RED(0xFF0000),
    GREEN(0x00FF00),
    BLUE(0x0000FF);  

    fun rgb() {
        //...
    }

    //enum 클래스 안에서 멤버함수를 정의한다면 마지막 항목 끝에 자바에서 처럼 ; 을 붙여주어야 한다.

}

Last updated