今天我们一起学习Kotlin中的枚举类。
还是以前的惯例,我们要对比Java和Kotlin中的枚举类来学习。
Java中的枚举类
Java中的枚举类是使用enum
关键字声明的,先说说Java枚举类的一些语法规则。
Java代码
public enum Color { RED("红色", 1), BLUE("蓝色", 2), BLACK("黑色", 3); String name; int value; Color(String name, int value){ this.name = name; this.value = value; }}复制代码
1 . 枚举类可以有自己的属性
2 . 枚举类可以有自己的构造方法
3 . 枚举常量的声明必须与枚举类的构造方法相对应
Kotlin中的枚举类
Kotlin中的枚举类声明与Java中的有些相似,我先放上代码,再进行对比。
enum class KotlinEnum(val r: Int, val g: Int, val b: Int, val colorName: String){ RED(255, 255, 255, "红色"), GREEN(0, 255, 0, "绿色"), BLUE(0, 0, 255, "蓝色"); //定义一个方法 fun rgb() = (r * 256 + g) * 256 + b}复制代码
1 . 使用enum
和class
两个关键字来定义一个枚举类
2 . 枚举类的属性直接作为类的参数列表,不需要写在类内部
3 . 可以为枚举类声明方法
4 . 枚举常量的格式必须与枚举类声明的格式一致
5 . 枚举常量和方法之间必须通过;
分割(注意:Kotlin中一般不需要写;)
其次,还要注意,在Java中class
和enum
都是关键字,我们声明的变量不能与这些关键字相同。但是在Kotlin中,class
是关键字,enum
是软关键字
,当它与class
一起使用时才有意义,其他时候都是没有要求和意义的,也就是在Kotlin中我们可以声明一个变量叫enum
。
写在最后
枚举类可能我们平时使用的比较少,但是其实枚举类的使用可以让我们的代码约束性更强,代码可读性更好。