> For the complete documentation index, see [llms.txt](https://gold.gitbook.io/kotlin/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gold.gitbook.io/kotlin/class/enum.md).

# enum

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

```java
//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
//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
//kotlin
enum class Color(val rgb: Int) {
    RED(0xFF0000),
    GREEN(0x00FF00),
    BLUE(0x0000FF);  

    fun rgb() {
        //...
    }

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

}
```
