概述
Java枚举,即enum类型(Enumerate),是JDK1.5的新特性,其加入目的是为了更好的组织常量、增加可读性,使得项目结构更加清晰。
Java枚举本质是什么
本质上可以理解为对于Class写法的一种简略,如
public enum Week{
MONDAY;
}
可以先粗浅理解为
public class Week{
public static final int MONDAY= 0;
}
在常量较多的情况下,显然省去了冗杂的修饰符,使得代码看起来更加简洁明了。
进阶
而enum做的远不止这些,事实上,对于常量,还可以"赋予"它们属性,也就是说,上面那个粗浅的理解是不准确的,举个实例:
public enum Week{
MONDAY(0,"周一"),
TUESDAY(1,"周二"),
WEDNESDAY(2,"周三"),
THURSDAY(3,"周四"),
FRIDAY(4,"周五"),
SATURDAY(5,"周六"),
SUNDAY(6,"周日");
// 构造函数
private Week(int code, String descibe) {
this.code = code;
this.descibe = descibe;
}
// 私有属性
private int code;
private String descibe;
// get方法
public int getCode() {
return code;
}
public String getDescibe() {
return descibe;
}
}
在常量名后面直接加括号,乍一看,也许就有些懵逼了,没关系,让我们写成class的等价形式:
public class WeekNoEnum{
// 常量们
static final WeekNoEnum MONDAY = new WeekNoEnum(0,"周一");
static final WeekNoEnum TUESDAY = new WeekNoEnum(1,"周二");
static final WeekNoEnum WEDNESDAY = new WeekNoEnum(2,"周三"