作用:改变以往定义常量的方式(往常的方法是将常量定义在接口中,并被修饰位statici、final),可以保证数据类型的安全(比如设定一个方法,其参数为枚举名,那么这个方法只接受枚举中的常量,否则报错)。
一、构造方法
关键字enum,定义方法如下:
Publicenum Constants{
常量1,
常量2,
……
常量n
}
注意:
(1) 常量之间用逗号隔开(不是分号),最后一个常量无逗号。
(2) 可以在类中定义
(3) 枚举类,类似一个类(和类唯一不同的就是,不能继承其它类,因为在创建的时候就已经继承某个类了;甚至可以有main方法),每个枚举成员可看作是枚举类的实例
二、枚举类的常用操作方法
方法名称 | 具体含义 | 使用方法 |
values() | 将枚举成员以数组形式返回 | 枚举类型名称.values() |
valueOf() | 返回枚举常量,参数必须为枚举实例的名称 | 枚举类型名称.valuesOf(枚举实例名称) |
compareTo() | 比较两个对象定义的先后顺序 | 枚举实例.compareTo(枚举实例) |
ordinal() | 该方法用于得到枚举成员的位置索引 | 枚举实例.ordinal() |
getDeclaringClass() | 获取枚举类名 | 枚举实例.getDeclaringClass() |
name() | 与toString效果一样 | 枚举实例.name() |
toString() | 将枚举实例标示符转为字符串 | 枚举实例.toString() |
三、枚举类型中的构造方法
枚举类中可以使用构造方法,但必须修饰位private
如果要向枚举类添加方法,最后一个枚举实例后面必须加“;”号
枚举类,必须先定义实例,再定义方法,如果先定义方法,会报错
例如:
enum Constant {
constant_a(“我是第一个枚举”),
constant_b(”我是第二个枚举);
Stringdescription;
PrivateConstant(String des) {
this.description=des;
}
Privategetdescription() {
Returndescription;
}
}
如此,通过constant_a.getdescription就可以获取cconstan_a的描述了
四、其它技巧
(1)将静态枚举导入类中
格式:importstatic 包名.枚举类名.* // “*”不可省略
功能:在类中静态导入枚举类,那么枚举实例的标识符便被导入当前的命名空间,如果类中的方法参数为枚举实例,则使用该方法时,可以直接使用枚举实例标识符作为参数,而可以不用“枚举类名.枚举实例名”作为参数
在开关语句中的case后面,无需导入,也可以不用“枚举类名.枚举实例名”作为参数,直接用枚举实例名即可