在Java中,我们通常用static final 关键字来定义常量,若我们要保存定义一组星期常量,例
public class demmo15 {
public static void main(String[] args) {
String a=Weekday.MON;
System.out.println(a);
}
public class Weekday{
public static final String MON="星期一";
public static final String TUE="星期二";
public static final String WED="星期三";
public static final String THU="星期四";
public static final String FRI="星期五";
public static final String SAT="星期六";
public static final String SUN="星期日";
}
}
但是用这种方式编译器无法检查每个值的合理性
eg.想要星期日,Weekday定义的常量范围是0-6,不包含7,编译器无法检查不在枚举的值
枚举
枚举类使用enum关键字来实现
目的:能自动检查某个值在枚举的集合内,不同类型枚举用不同类型标记
好处:
- enum常量本身自带有类型,即Weekday day=Weekday.Sun
- 不可能引用非枚举类中的值,其无法编译
- 不同类型的枚举不能互相比较或赋值
public class demo02 {
public static void main(String[] args) {
//枚举类的使用
Week dayOfWeek1=Week.SUN;
System.out.println(dayOfWeek1.toString());
}
enum Week{
//当前枚举类
MON("星期一"),TUE("星期二"),WEN("星期三"),THR("星期四"),FRI("星期五"),SUN("星期六"),SAT("星期日");
private String value;
//构造方法(必须私有)
private Week(String value) {
this.value=value;
}
//重写枚举父类Enum的toString方法
@Override
public String toString() {
return this.value;
}
}
}