Android Kotlin基础学习 - 枚举类

本文介绍了Kotlin中枚举类的基础用法,包括如何声明和初始化枚举常量,以及如何在枚举类中声明方法。枚举类支持类型安全,并提供了枚举常量的遍历和访问方法。示例展示了如何定义带有额外属性的枚举,并给出了枚举常量的使用方法,包括获取枚举名称、顺序以及通过名称获取枚举值。
摘要由CSDN通过智能技术生成

背景

  • 学习 记录分享 坚持开源!

说明

枚举类最基本的用法是实现一个类型安全的枚举。

枚举常量用逗号分隔,每个枚举常量都是一个对象。

enum class Color {

    RED,WHITE,BLACK,BLUE,PINK

}

枚举初始化

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

enum class Color(val rgb: Int) {

    RED(0xff0000),
    BLUE(0x0000ff)

}

枚举支持声明方法,以及覆盖父类的方法。如:

enum class ProtocolState {

    WAITING{
        // 覆盖父类方法
        override fun signal(): ProtocolState {
            return TALKING
        }
    },
    TALKING{
        override fun signal(): ProtocolState {
            return WAITING
        }
    };

    // 支持声明方法
    abstract fun signal(): ProtocolState

}

如果枚举类定义任何成员,要使用分号将成员定义中的枚举常量定义与其他成员定义分隔开


使用枚举常量

Kotlin 中的枚举类具有合成方法,允许遍历定义的枚举常量,并通过枚举类名称获取枚举常数。

EnumClass.valueOf(value: String): EnumClass  // 转换指定 name 为枚举值,若未匹配成功,会抛出IllegalArgumentException
EnumClass.values(): Array<EnumClass>        // 以数组的形式,返回枚举值

获取枚举类中枚举常量相关信息:

val name: String //获取枚举名称
val ordinal: Int //获取枚举值在所有枚举数组中定义的顺序

实例

枚举类 Color 定义如下:

enum class Color(val rgb: Int) {

    RED(0xff0000),
    BLUE(0x0000ff)

}

调用:

private fun enumTest() {
        println("> --- enumTest ---")
        var color = Color.RED
        println("> color.name = ${color.name}")
        println("> color.ordinal = ${color.ordinal}")
        println("> values = ${Color.values()}")
        println("> valuesOfRED = ${Color.valueOf("RED")}")
    }

输出结果:

在这里插入图片描述


技术永不眠!我们下期见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值