열거형
여러 가지 상태를 구분하기 위한 객체들을 이름을 붙혀 여러 개 생성해 두고,
그 중 하나의 상태를 선택하여 나타내기 위한 클래스
상태는 대문자를 사용하는 것이 관례
Enum 의 객체들은 고유한 속성을 가질 수 있음
생성자를 만들어 속성을 갖도록 하면, 객체를 선언할 때 속성 설정 가능
일반 클래스처럼 함수 추가 가능
객체 추가 마지막 부분에 ;(세미콜론)을 추가한 후 함수 기술하면 됨
fun main() {
_state()
}
fun _state() {
var a = state.SING
println(a)
a = state.EAT
println(a.messeage)
a=state.SLEEP
println(a.isSleeping())
}
enum class state(val messeage: String) {
SING("sing"),
EAT("eat"),
SLEEP("sleep");
fun isSleeping() = this == state.SLEEP
}