【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )
文章目錄
- I . 枚舉類常用用法
- II . 枚舉類初始化
- III. 枚舉類匿名類
- IV . 枚舉類實(shí)現(xiàn)接口
- V . 獲取枚舉常量名稱和位置索引
- VI . 獲取枚舉常量的成員變量
- VII . 調(diào)用枚舉常量的方法
- VIII . Kotlin 枚舉完整代碼示例
I . 枚舉類常用用法
枚舉最常用的方法 : 定義枚舉常量 , 使用逗號(hào)隔開 , 每個(gè)枚舉常量都是一個(gè)對象 ;
/*** 枚舉最常用的方法* 定義枚舉常量 , 使用逗號(hào)隔開* 每個(gè)枚舉常量都是一個(gè)對象** 這里定義了 左 右 兩個(gè)方向*/ enum class Direction{LEFT, RIGHR }II . 枚舉類初始化
枚舉初始化 : 定義枚舉常量時(shí) , 為其聲明一個(gè)成員變量 , 可以為其初始化一個(gè)值
/*** 枚舉初始化* 定義枚舉常量時(shí) , 為其聲明一個(gè)成員變量 , 可以為其初始化一個(gè)值*/ enum class Number (var num : Int){ONE(1),TWO(2)}III. 枚舉類匿名類
枚舉類抽象方法 : 枚舉類中可以定義枚舉常量的抽象方法 ;
① 實(shí)現(xiàn)方式 : 每個(gè) 枚舉常量 必須在 匿名類中 實(shí)現(xiàn)此處定義的抽象方法 ;
② 定義位置 : 枚舉常量的抽象方法要定義在枚舉類最后 ;
/*** 枚舉常量匿名類*/ enum class Student{GOOD_STUDENT{override fun say() {println("好學(xué)生")}},BAD_STUDENT{override fun say() {println("壞學(xué)生")}}; //定義了成員方法后, 最后一個(gè)枚舉常量后需要使用分號(hào)/*** 定義枚舉常量的抽象方法* 每個(gè) 枚舉常量 必須在 匿名類中 實(shí)現(xiàn)此處定義的抽象方法* 枚舉常量的抽象方法要定義在枚舉類最后*/abstract fun say()}IV . 枚舉類實(shí)現(xiàn)接口
枚舉類實(shí)現(xiàn)接口 : 枚舉類可以實(shí)現(xiàn)接口 , 等同于將接口中的抽象方法定義在枚舉類中 ;
/*** 聲明一個(gè)接口*/ interface Speak{fun speak() }/*** 該枚舉類實(shí)現(xiàn) human 接口* 每個(gè)枚舉常量都要實(shí)現(xiàn) speak 方法*/ enum class Human : Speak{MAN{override fun speak() {println("男人")}},WOMEN{override fun speak() {println("女人")}}}V . 獲取枚舉常量名稱和位置索引
獲取枚舉常量名稱和位置索引 :
① 獲取枚舉類名稱 : 枚舉類.常量名稱.name 可以獲取該枚舉常量的名稱 ;
( 打印 枚舉類.常量名稱 也可以將枚舉常量名稱打印出來)
② 獲取枚舉類索引 : 枚舉類.常量名稱.ordinal 可以獲取該枚舉常量的位置索引 , 從 0 開始計(jì)數(shù) ;
//打印枚舉類 , 直接打印其名稱 //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 . 獲取枚舉常量的成員變量
在枚舉定義時(shí) , 可以為其制定成員變量 , enum class 枚舉名稱 : ( var 成員名 : 成員類型 ) , 枚舉常量定義時(shí) , 可以為其初始化值 枚舉常量名稱 ( 成員值 ) ;
//打印枚舉類 成員變量值 //1 println(Number.ONE.num) //2 println(Number.TWO.num)VII . 調(diào)用枚舉常量的方法
使用 枚舉類.枚舉常量名.方法名() 可以調(diào)用枚舉常量匿名類中的枚舉方法 ;
//調(diào)用枚舉類的實(shí)現(xiàn)的自身定義的抽象方法 //好學(xué)生 Student.GOOD_STUDENT.say() //壞學(xué)生 Student.BAD_STUDENT.say()//調(diào)用枚舉類實(shí)現(xiàn)的接口方法 //男人 Human.MAN.speak() //女人 Human.WOMEN.speak()VIII . Kotlin 枚舉完整代碼示例
package enum/*** 枚舉最常用的方法* 定義枚舉常量 , 使用逗號(hào)隔開* 每個(gè)枚舉常量都是一個(gè)對象** 這里定義了 左 右 兩個(gè)方向*/ enum class Direction{LEFT, RIGHR }/*** 枚舉初始化* 定義枚舉常量時(shí) , 為其聲明一個(gè)成員變量 , 可以為其初始化一個(gè)值*/ enum class Number (var num : Int){ONE(1),TWO(2)}/*** 枚舉常量匿名類*/ enum class Student{GOOD_STUDENT{override fun say() {println("好學(xué)生")}},BAD_STUDENT{override fun say() {println("壞學(xué)生")}}; //定義了成員方法后, 最后一個(gè)枚舉常量后需要使用分號(hào)/*** 定義枚舉常量的抽象方法* 每個(gè) 枚舉常量 必須在 匿名類中 實(shí)現(xiàn)此處定義的抽象方法* 枚舉常量的抽象方法要定義在枚舉類最后*/abstract fun say()}/*** 聲明一個(gè)接口*/ interface Speak{fun speak() }/*** 該枚舉類實(shí)現(xiàn) human 接口* 每個(gè)枚舉常量都要實(shí)現(xiàn) speak 方法*/ enum class Human : Speak{MAN{override fun speak() {println("男人")}},WOMEN{override fun speak() {println("女人")}}}fun main() {//打印枚舉類 , 直接打印其名稱//LEFTprintln(Direction.LEFT)//RIGHRprintln(Direction.RIGHR)//ONEprintln(Number.ONE)//TWOprintln(Number.TWO)//打印枚舉類 name 名稱//LEFTprintln(Direction.LEFT.name)//RIGHRprintln(Direction.RIGHR.name)//ONEprintln(Number.ONE.name)//TWOprintln(Number.TWO.name)//打印枚舉類 ordinal 位置索引//0println(Direction.LEFT.ordinal)//1println(Direction.RIGHR.ordinal)//打印枚舉類 成員變量值//1println(Number.ONE.num)//2println(Number.TWO.num)//調(diào)用枚舉類的實(shí)現(xiàn)的自身定義的抽象方法//好學(xué)生Student.GOOD_STUDENT.say()//壞學(xué)生Student.BAD_STUDENT.say()//調(diào)用枚舉類實(shí)現(xiàn)的接口方法//男人Human.MAN.speak()//女人Human.WOMEN.speak()}
執(zhí)行結(jié)果 :
LEFT RIGHR ONE TWO LEFT RIGHR ONE TWO 0 1 1 2 好學(xué)生 壞學(xué)生 男人 女人總結(jié)
以上是生活随笔為你收集整理的【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Kotlin】Kotlin Seale
- 下一篇: 【JetPack】ViewBinding