📜  java中带有值的枚举-任何(1)

📅  最后修改于: 2023-12-03 15:31:49.417000             🧑  作者: Mango

Java中带有值的枚举-Enums with Values in Java

在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中非常有用,它们可以帮助我们更好地组织代码并增加可读性,还可以用于创建单例对象。在使用枚举时,带有值的枚举可以更好地满足我们的需要。