【Kotlin】Kotlin enum 枚举类 ( 常用用法

您所在的位置:网站首页 定义枚举类型变量 【Kotlin】Kotlin enum 枚举类 ( 常用用法

【Kotlin】Kotlin enum 枚举类 ( 常用用法

#【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 来源: 网络整理| 查看: 265

文章目录I . 枚举类常用用法II . 枚举类初始化III. 枚举类匿名类IV . 枚举类实现接口V . 获取枚举常量名称和位置索引VI . 获取枚举常量的成员变量VII . 调用枚举常量的方法VIII . Kotlin 枚举完整代码示例I . 枚举类常用用法

枚举最常用的方法 : 定义枚举常量 , 使用逗号隔开 , 每个枚举常量都是一个对象 ;

/** * 枚举最常用的方法 * 定义枚举常量 , 使用逗号隔开 * 每个枚举常量都是一个对象 * * 这里定义了 左 右 两个方向 */ enum class Direction{ LEFT, RIGHR }II . 枚举类初始化

枚举初始化 : 定义枚举常量时 , 为其声明一个成员变量 , 可以为其初始化一个值

/** * 枚举初始化 * 定义枚举常量时 , 为其声明一个成员变量 , 可以为其初始化一个值 */ enum class Number (var num : Int){ ONE(1), TWO(2) }III. 枚举类匿名类

枚举类抽象方法 : 枚举类中可以定义枚举常量的抽象方法 ;

① 实现方式 : 每个 枚举常量 必须在 匿名类中 实现此处定义的抽象方法 ;

② 定义位置 : 枚举常量的抽象方法要定义在枚举类最后 ;

/** * 枚举常量匿名类 */ enum class Student{ GOOD_STUDENT{ override fun say() { println("好学生") } }, BAD_STUDENT{ override fun say() { println("坏学生") } }; //定义了成员方法后, 最后一个枚举常量后需要使用分号 /** * 定义枚举常量的抽象方法 * 每个 枚举常量 必须在 匿名类中 实现此处定义的抽象方法 * 枚举常量的抽象方法要定义在枚举类最后 */ abstract fun say() }IV . 枚举类实现接口

枚举类实现接口 : 枚举类可以实现接口 , 等同于将接口中的抽象方法定义在枚举类中 ;

/** * 声明一个接口 */ interface Speak{ fun speak() } /** * 该枚举类实现 human 接口 * 每个枚举常量都要实现 speak 方法 */ enum class Human : Speak{ MAN{ override fun speak() { println("男人") } }, WOMEN{ override fun speak() { println("女人") } } }V . 获取枚举常量名称和位置索引

获取枚举常量名称和位置索引 :

① 获取枚举类名称 : 枚举类.常量名称.name 可以获取该枚举常量的名称 ;

( 打印 枚举类.常量名称 也可以将枚举常量名称打印出来)

② 获取枚举类索引 : 枚举类.常量名称.ordinal 可以获取该枚举常量的位置索引 , 从 0 开始计数 ;

//打印枚举类 , 直接打印其名称 //LEFT println(Direction.LEFT) //RIGHR println(Direction.RIGHR) //ONE println(Number.ONE) //TWO println(Number.TWO) //打印枚举类 name 名称 //LEFT println(Direction.LEFT.name) //RIGHR println(Direction.RIGHR.name) //ONE println(Number.ONE.name) //TWO println(Number.TWO.name) //打印枚举类 ordinal 位置索引 //0 println(Direction.LEFT.ordinal) //1 println(Direction.RIGHR.ordinal)VI . 获取枚举常量的成员变量

在枚举定义时 , 可以为其制定成员变量 , enum class 枚举名称 : ( var 成员名 : 成员类型 ) , 枚举常量定义时 , 可以为其初始化值 枚举常量名称 ( 成员值 ) ;

//打印枚举类 成员变量值 //1 println(Number.ONE.num) //2 println(Number.TWO.num)VII . 调用枚举常量的方法

使用 枚举类.枚举常量名.方法名() 可以调用枚举常量匿名类中的枚举方法 ;

//调用枚举类的实现的自身定义的抽象方法 //好学生 Student.GOOD_STUDENT.say() //坏学生 Student.BAD_STUDENT.say() //调用枚举类实现的接口方法 //男人 Human.MAN.speak() //女人 Human.WOMEN.speak()VIII . Kotlin 枚举完整代码示例package enum /** * 枚举最常用的方法 * 定义枚举常量 , 使用逗号隔开 * 每个枚举常量都是一个对象 * * 这里定义了 左 右 两个方向 */ enum class Direction{ LEFT, RIGHR } /** * 枚举初始化 * 定义枚举常量时 , 为其声明一个成员变量 , 可以为其初始化一个值 */ enum class Number (var num : Int){ ONE(1), TWO(2) } /** * 枚举常量匿名类 */ enum class Student{ GOOD_STUDENT{ override fun say() { println("好学生") } }, BAD_STUDENT{ override fun say() { println("坏学生") } }; //定义了成员方法后, 最后一个枚举常量后需要使用分号 /** * 定义枚举常量的抽象方法 * 每个 枚举常量 必须在 匿名类中 实现此处定义的抽象方法 * 枚举常量的抽象方法要定义在枚举类最后 */ abstract fun say() } /** * 声明一个接口 */ interface Speak{ fun speak() } /** * 该枚举类实现 human 接口 * 每个枚举常量都要实现 speak 方法 */ enum class Human : Speak{ MAN{ override fun speak() { println("男人") } }, WOMEN{ override fun speak() { println("女人") } } } fun main() { //打印枚举类 , 直接打印其名称 //LEFT println(Direction.LEFT) //RIGHR println(Direction.RIGHR) //ONE println(Number.ONE) //TWO println(Number.TWO) //打印枚举类 name 名称 //LEFT println(Direction.LEFT.name) //RIGHR println(Direction.RIGHR.name) //ONE println(Number.ONE.name) //TWO println(Number.TWO.name) //打印枚举类 ordinal 位置索引 //0 println(Direction.LEFT.ordinal) //1 println(Direction.RIGHR.ordinal) //打印枚举类 成员变量值 //1 println(Number.ONE.num) //2 println(Number.TWO.num) //调用枚举类的实现的自身定义的抽象方法 //好学生 Student.GOOD_STUDENT.say() //坏学生 Student.BAD_STUDENT.say() //调用枚举类实现的接口方法 //男人 Human.MAN.speak() //女人 Human.WOMEN.speak() }

执行结果 :

LEFT RIGHR ONE TWO LEFT RIGHR ONE TWO 0 1 1 2 好学生 坏学生 男人 女人


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3