Java 枚举(Enum)是一种类型,它用于声明一组固定的常量。枚举在 Java 中是一种特殊的类,它有自己的一些特性。枚举可以包含多个预定义的值,这些值称为枚举常量。枚举类型可以看作是一种类型安全的数据结构,用于表示一组具有明确意义的值。
枚举的特性:
- 枚举类默认继承
java.lang.Enum
类。 - 枚举类不能被继承,但可以实现接口。
- 枚举类中所有的方法默认都是
public
的。 - 枚举类中可以定义自己的方法和属性。
- 枚举类可以使用
switch
语句。 - 枚举类可以有自己的构造函数。
创建枚举类:
创建枚举类的基本语法如下:
public enum EnumName {
// 枚举常量
VALUE1, VALUE2, VALUE3, ...
// 构造函数
EnumName() {
// 构造函数逻辑
}
// 方法
public void method() {
// 方法逻辑
}
}
示例:
下面是一个简单的枚举类示例,用于表示星期的天数:
public enum WeekDay {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
// 构造函数
WeekDay() {
System.out.println("Enum constant created: " + this);
}
// 方法
public String getDescription() {
switch (this) {
case MONDAY:
return "Start of work week";
case FRIDAY:
return "End of work week";
case SATURDAY:
case SUNDAY:
return "Weekend";
default:
return "Work day";
}
}
// 主方法,用于演示
public static void main(String[] args) {
for (WeekDay day : WeekDay.values()) {
System.out.println(day + ": " + day.getDescription());
}
}
}
在这个示例中,WeekDay
枚举类定义了一周的七天。每个枚举常量在创建时都会调用构造函数。枚举类还定义了一个 getDescription
方法,它根据枚举常量返回相应的描述。
使用枚举:
枚举类可以使用 values()
方法获取所有枚举常量的数组。此外,可以使用 valueOf
方法将字符串转换为枚举常量。
public class EnumExample {
public static void main(String[] args) {
// 获取所有枚举常量
WeekDay[] days = WeekDay.values();
for (WeekDay day : days) {
System.out.println(day);
}
// 将字符串转换为枚举常量
WeekDay day = WeekDay.valueOf("FRIDAY");
System.out.println(day.getDescription());
}
}
输出结果如下:
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
Enum constant created: MONDAY
Enum constant created: TUESDAY
Enum constant created: WEDNESDAY
Enum constant created: THURSDAY
Enum constant created: FRIDAY
Enum constant created: SATURDAY
Enum constant created: SUNDAY
MONDAY: Start of work week
TUESDAY: Work day
WEDNESDAY: Work day
THURSDAY: Work day
FRIDAY: End of work week
SATURDAY: Weekend
SUNDAY: Weekend
FRIDAY: End of work week
枚举在 Java 中是一种非常有用的特性,它可以提供类型安全的数据结构,同时还可以包含方法和属性,使得代码更加清晰和易于维护。