一文带你了解java中的枚举

126 阅读2分钟

Java中的枚举(Enumeration)是一种特殊的数据类型,用于定义一组常量。枚举类型在代码中可以被用作变量的取值范围,提供了更清晰、更可读的代码结构。

以下是关于Java枚举的一些重要概念和用法:

1. 枚举的定义:

枚举类型通过使用关键字 `enum` 来定义。一个简单的枚举可以如下所示:



```java
enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
```

在上述例子中,我们定义了一个名为 Day 的枚举类型,它包含了一周的所有天。

  • 枚举常量:
    枚举常量是枚举类型的取值,每个枚举常量都是唯一的,并且可以在代码中使用。在上述例子中,MONDAYTUESDAY 等都是枚举常量。

  • 枚举方法:
    枚举类型可以包含方法。你可以为枚举类型定义构造函数、普通方法、静态方法等。

    enum Day {
        MONDAY("星期一"),
        TUESDAY("星期二"),
        WEDNESDAY("星期三"),
        THURSDAY("星期四"),
        FRIDAY("星期五"),
        SATURDAY("星期六"),
        SUNDAY("星期日");
    
        private String chineseName;
    
        // 构造函数
        Day(String chineseName) {
            this.chineseName = chineseName;
        }
    
        // 普通方法
        public String getChineseName() {
            return chineseName;
        }
    
        // 静态方法
        public static Day getDayByName(String name) {
            for (Day day : Day.values()) {
                if (day.name().equalsIgnoreCase(name)) {
                    return day;
                }
            }
            throw new IllegalArgumentException("Invalid day name: " + name);
        }
    }
    

在上述例子中,我们为枚举类型 Day 定义了一个构造函数和两个方法。构造函数用于初始化枚举常量的中文名称,getChineseName() 方法返回中文名称,getDayByName() 方法通过名称获取对应的枚举常量。

2. 使用枚举:

一旦定义了枚举类型,你可以在代码中使用它。以下是一些使用枚举的示例:

```java
Day today = Day.MONDAY;
System.out.println("Today is " + today);  // 输出:Today is MONDAY

System.out.println("Chinese name of TUESDAY is " + Day.TUESDAY.getChineseName());  // 输出:Chinese name of TUESDAY is 星期二

Day day = Day.getDayByName("Wednesday");
System.out.println("The day is " + day);  // 输出:The day is WEDNESDAY
```

在上述示例中,我们将 Day.MONDAY 赋值给变量 today,并输出了它的值。我们还通过 Day.TUESDAY.getChineseName() 获取了 TUESDAY 枚举常量的中文名称,并输出了它。最后,我们使用 Day.getDayByName("Wednesday") 方法根据名称获取枚举常量,并输出了它。

枚举类型在许多场景中都非常有用,特别是当你需要一组有限的常量集合时。它提供了类型安全性、可读性和易于维护的代码结构。