enum class
- 카테고리를 분류할때만 쓰자!!!!!!!!!
- 몇개의 상수 값을 가지는 데이터 형식(열거형)
- 이러한 상수 값은 주로 서로 연관된 항목을 그룹화하고 명명하는데 사용(카테고리)
- 객체들은 대문자로 기술
- 객체들은 고유의 속성을 가질수있다
- 내장 property
- name : 선언된 열거상수의 문자열
- ordinal(index) : 선언된 열거상수의 순서(0부터 시작)
- 내장 함수
- values() : 열거한 상수를 배열로 가져오는 함수
- valueOf(name: String) : 인자로 주어진 열거형 상수를 가져오는 함수
- 변경할수도 있음. 그런데 그럴일 거의 없음
fun main(){
var state = State.SING
println(state)
state = State.SLEEP
println(state.isSleep())
state = State.EAT
println(state.mes)
}
enum class Color{
RED,
BLUE,
GREEN
}
enum class Color2(val number: Int){
RED(1),
BLUE(2),
GREEN(3);
fun isRed() = this == Color2.RED
}
enum class State(val mes: String){
SING("노래를 부릅니다"),
EAT("밥먹기"),
SLEEP("잠자기");
fun isSleep() = this == State.SLEEP
}