Kotlin语法(十四)-枚举类(Enum Classes)

         参考原文:http://kotlinlang.org/docs/reference/enum-classes.html

        

         使用“enum”关键字修饰类:

enum classDirection {

  NORTH, SOUTH, WEST, EAST

}

         每一个枚举常量项都是一个对象;使用“,”分割。 

     初始化(Initialization)

         每一个枚举都是枚举类的一个实例,可以初始化:

enum classColor(val rgb: Int) {

    RED(0xFF0000),

    GREEN(0x00FF00),

    BLUE(0x0000FF)

}

 

     匿名类(Anonymous Classes)

         枚举常量也可以声明匿名类:

enum classProtocolState {

  WAITING {

    override fun signal() = TALKING

  },

  TALKING {

    override fun signal() = WAITING

  };

 

  abstract fun signal(): ProtocolState

}

         若枚举类有定义枚举常量外的其他成员,枚举常量与其他成员使用“;”分割。

 

     枚举常数使用(Working with Enum Constants)

         跟Java一样,在Kotlin中,枚举类提供一些方法:如列取所有定义的枚举常量;可以通过名字获取枚举常量。(假设枚举类为“ EnumClass”):

EnumClass.valueOf(value: String): EnumClass

EnumClass.values(): Array

 

         Ø  使用“valueOf()”时,若传入的名称找不到一个匹配的枚举常量,会抛出一个“IllegalArgumentException ”异常。

         Ø  每一个枚举常量,都包含下面两个属性:

val name: String //名称

val ordinal: Int //定义位置的序号

         Ø  枚举常量也实现了“Comparable”接口。




你可能感兴趣的:(Kotlin)