枚举类最基本的用法是实现一个类型安全的枚举。
枚举常量用逗号分隔,每个枚举常量都是一个对象。
enum class Color {
RED,BLACK,BLUE,GREEN,WHITE
}
相关属性、方法
枚举类具有两个属性两个方法,
属性是name和ordinal,分别获取枚举名称和枚举序号
方法一个是获取集合可以进行遍历等操作,另一个是其名称获取枚举常数
val color: Color = Color.RED
color.name
color.ordinal
Color.valueOf("RED")
Color.values().size
结果:
枚举自定义属性
每一个枚举都是枚举类的实例,它们可以被初始化,可以自定义属性
举例:
enum class Age(val rgb: Int, val number: Int) {
Child(2, 20),
Youth(18, 180),
OldMan(60, 600)
}
Age.Child
Age.Child.rgb
Age.Child.number
结果:
枚举自定义方法
枚举还支持以声明自己的匿名类及相应的方法、以及覆盖基类的方法
举例:
enum class ProtocolState {
WAITING {
override fun signal() = "WAITING的方法"
},
TALKING {
override fun signal() = "TALKING的方法"
};
abstract fun signal(): String
}
ProtocolState.TALKING.signal()
结果:
网友评论