枚举
间接的表示一些固定的值,关键字 enum
Demo
public enum GenderEnum {
/**
* 1,表示男
*/
MAN(1, "男"),
/**
* 2,表示女
*/
WOMAN(2, "女"),
/**
* 3,表示未知
*/
UNKNOWN(3, "未知");
private int value;
private String desc;
MyEnum(int value, String desc) {
this.value = value;
this.desc = desc;
}
public int getValue() {
return value;
}
public String getDesc() {
return desc;
}
}
特点
-
所有枚举类都是Enum的子类
-
通过"枚举类名.枚举项名称"去访问指定的枚举项
-
每一个枚举项就是该枚举的一个对象
-
枚举也是一个类,也可以去定义成员变量
-
枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
-
枚举类可以有构造器,但必须是private的,默认的也是private的
-
枚举类也可以有抽象方法,但是枚举项必须重写该方法
方法
方法名 | 说明 |
---|---|
String name() | 获取枚举项的名称 |
int ordinal() | 返回枚举项在枚举类中的索引值 |
int compareTo(E o) | 比较两个枚举项,返回的是索引值的差值 |
String toString() | 返回枚举常量的名称 |
static T valueOf(Class type,String name) | 获取指定枚举类中的指定名称的枚举值 |
values() | 获得所有的枚举项 |