📅  最后修改于: 2023-12-03 15:31:49.417000             🧑  作者: Mango
在Java中,枚举类型是一组具有固定数量的命名常量的集合。它们有助于增加代码可读性,减少错误,并将变量限制在一定范围内。
但有时候,我们希望枚举类型能够拥有一些额外的信息,比如枚举类型的值,这时候就需要使用带有值的枚举。
带有值的枚举在Java中实现非常简单,只需要给每个枚举常量分配一个相应的值即可。例如:
public enum DayOfWeek {
MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5),
SATURDAY(6), SUNDAY(7);
private final int day;
DayOfWeek(int day) {
this.day = day;
}
public int getDay() {
return day;
}
}
上面的代码定义了一个DayOfWeek
枚举类型,它包含了每个星期日的名称和相应的数字表示。在这个枚举中,每个枚举常量都有一个day
属性表示它的数字值。
当我们需要使用带有值的枚举时,可以通过调用枚举中定义的方法获取它的值。例如:
DayOfWeek monday = DayOfWeek.MONDAY;
int day = monday.getDay();
System.out.println("Number for " + monday + " is " + day);
上面的代码将输出:"Number for MONDAY is 1"。
除了使用枚举中定义的常量,我们还可以使用枚举来创建单例对象。例如:
public enum Singleton {
INSTANCE;
public void doSomething() {
// do something
}
}
上面的代码定义了一个Singleton
枚举类型,它只包含一个枚举常量INSTANCE
,并且这个枚举常量是一个单例对象。我们可以通过以下方式来获取它:
Singleton singleton = Singleton.INSTANCE;
singleton.doSomething();
带有值的枚举在Java中非常有用,它们可以帮助我们更好地组织代码并增加可读性,还可以用于创建单例对象。在使用枚举时,带有值的枚举可以更好地满足我们的需要。