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

本文详细介绍了Kotlin中的枚举类,包括如何初始化枚举常量,创建匿名类,以及如何在实际应用中操作枚举常量。每个枚举常量都是一个独立的对象,可以通过`valueOf()`方法根据名称获取枚举实例,未找到匹配的枚举常量会抛出异常。同时,枚举常量还实现了`Comparable`接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         参考原文: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<EnumClass>

 

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

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

val name: String //名称

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

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值