什么是枚举?
枚举指的是在一定范围内取值,这个值必须是枚举类型中的任意一个,而且只能够取其中一个。
使用枚举的注意点:
-
可以在定义类型时对枚举常量初始化。
-
因为枚举类型是常量,所以不能对枚举类型进行赋值运算。
-
枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。
-
将整数赋值给枚举变量时要进行强制类型装换。
枚举的特点:
枚举类型所有构造方法必须私有
枚举的取值范围必须是规定范围内取值,并且只能够取范围内的其中一个
枚举中可以有构造方法,成员方法,静态方法,成员变量,抽象方法
用常量,节省代码,不用进行多余的判断,方便使用
枚举应用public enum DayEnum { //常量 SUN("星期一", 1), MON("星期二", 2), TUE("星期三", 3), WED("星期四", 4), THU("星期五", 5), FRI("星期六", 6), SAT("星期天", 7); private DayEnum(String desc, int code) { this.desc = desc; this.code = code; } private String desc;// 日期 private int code;// 编号 public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } //根据对应的编码获取日期 public static String getCode(int code) { for (DayEnum de : DayEnum.values()) { if ((de.getCode()) == code) { return de.getDesc(); } } return null; } //根据日期获取对应的编码 public static int getDesc(String desc) { for (DayEnum de : DayEnum.values()) { if(de.getDesc().equals(desc)) { return de.code; } } return 0; } }
测试
public static class TestEnum { public static void main(String[] args) { //输出SUN的code //System.out.println(DayEnum.SUN.getCode()); //输出SUN的desc //System.out.println(DayEnum.SUN.getDesc()); //输出星期一 System.out.println(DayEnum.getCode(1)); //输出3 System.out.println(DayEnum.getDesc("星期三")); } }