package meijulei
/*
枚舉類最基本的用法是實(shí)現(xiàn)一個(gè)類型安全的美劇
枚舉常量用逗號(hào)分隔讨永,每個(gè)枚舉常量都是一個(gè)對(duì)象
*/
enum class Color{
RED,BLACK,BLUE,GREEN,WHITE
}
//---------------每一個(gè)枚舉都是枚舉類的實(shí)例考杉,可以被初始化
enum class Color2(val rgb:Int){
RED(0Xff0000),
GREEN(0X00ff00),
BLUE(0X0000FF)
}
//默認(rèn)是從0開(kāi)始 若需要指定值遮糖,可以使用其構(gòu)造函數(shù)
enum class Shape(value:Int){
ovel(100),
rectangle(200)
}
//-----枚舉類還支持以聲明自己的匿名類及相應(yīng)的方法坤溃,以及覆蓋基類的方法
enum class ProtocolState{
WAITING{
override fun signal()=TALKING
},
TALKING{
override fun signal()=WAITING
};
abstract fun signal():ProtocolState
}
//--------使用枚舉常量---------------
/*
Kotlin 中的美劇類具有合成方法集索,
允許便利定義的枚舉常量局嘁,并通過(guò)其名稱獲取枚舉常數(shù)
*/
fun main(args: Array<String>) {
var color:Color=Color.BLACK
println(Color.values())
println(Color.valueOf("RED"))
println(color.name) //表現(xiàn)名 BLACK
println(color.ordinal) //值 1
}