枚举类
package meijulei
/*
枚举类最基本的用法是实现一个类型安全的美剧
枚举常量用逗号分隔,每个枚举常量都是一个对象
*/
enum class Color{
RED,BLACK,BLUE,GREEN,WHITE
}
//---------------每一个枚举都是枚举类的实例,可以被初始化
enum class Color2(val rgb:Int){
RED(0Xff0000),
GREEN(0X00ff00),
BLUE(0X0000FF)
}
//默认是从0开始 若需要指定值,可以使用其构造函数
enum class Shape(value:Int){
ovel(100),
rectangle(200)
}
//-----枚举类还支持以声明自己的匿名类及相应的方法,以及覆盖基类的方法
enum class ProtocolState{
WAITING{
override fun signal()=TALKING
},
TALKING{
override fun signal()=WAITING
};
abstract fun signal():ProtocolState
}
//--------使用枚举常量---------------
/*
Kotlin 中的美剧类具有合成方法,
允许便利定义的枚举常量,并通过其名称获取枚举常数
*/
fun main(args: Array<String>) {
var color:Color=Color.BLACK
println(Color.values())
println(Color.valueOf("RED"))
println(color.name) //表现名 BLACK
println(color.ordinal) //值 1
}