枚举的定义
枚举类型是Java5新增的一部分,它是一种特殊的数据类型,是用来定义常量的类型。
没有枚举类型时定义常量的常见方式:
public static final String WEEK_MONDAY = "星期一";
使用此方法,在使用方便性上并没有太多好处,混淆的几率比较大,而且无法再继续定义常量里面的属性。
使用枚举类型定义常量:
public enum WeekEnum {
WEEK_MONDAY("Monday", 1, "星期一"),
WEEK_TUESDAY("Tuesday", 2, "星期二"),
WEEK_WEDNESDAY("Wednesday", 3, "星期三"),
WEEK_THURSDAY("Thursday", 4, "星期四"),
WEEK_FRIDAY("Friday", 5, "星期五"),
WEEK_SATURDAY("Saturday", 6, "星期六"),
WEEK_SUNDAY("Sunday", 7, "星期日");
WeekEnum(String name, int code, String msg) {
this.name = name;
this.code = code;
this.msg = msg;
}
private String name; // 英文名
private int code; // 代码
private String msg; // 信息
public String getName() {
return name;
}
public int getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
使用枚举类型定义常量,还可以继续定义对应常量的属性,还可以在枚举类里自定义方法。
枚举的使用
public class TestWeek {
public static void main(String[] args) {
System.out.println(WeekEnum.WEEK_FRIDAY);
System.out.println(WeekEnum.WEEK_FRIDAY.getCode());
System.out.println(WeekEnum.WEEK_FRIDAY.getMsg());
System.out.println(WeekEnum.WEEK_FRIDAY.getName());
}
}
在switch里使用枚举类
public class TestWeek {
public static void main(String[] args) {
WeekEnum weekMonday = WeekEnum.WEEK_MONDAY;
switch (weekMonday) {
case WEEK_FRIDAY:
System.out.println("-----------------星期五-----------------");
break;
case WEEK_MONDAY:
System.out.println("-----------------星期一-----------------");
break;
}
}
}