目录
在 Java 编程中,枚举类是一种特殊类型的类,它用于定义一组固定的常量。枚举类在实际开发中非常有用,可以用来表示状态、选项等。本文将详细介绍 Java 枚举类的定义、使用方法以及一些高级特性。
一、定义枚举类
1. 基本语法
枚举类使用 enum
关键字定义,其基本语法如下:
enum 枚举名 {
常量1, 常量2, ..., 常量N;
}
2. 示例
// 定义一个表示星期的枚举类
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
二、使用枚举类
1. 访问枚举常量
可以通过枚举类名直接访问枚举常量。
Day day = Day.MONDAY;
System.out.println(day); // 输出:MONDAY
2. 遍历枚举常量
可以使用 values()
方法遍历所有的枚举常量。
for (Day day : Day.values()) {
System.out.println(day);
}
3. 获取枚举常量的值
可以使用 ordinal()
方法获取枚举常量的序号,从 0 开始。
System.out.println(Day.MONDAY.ordinal()); // 输出:0
三、带有方法和字段的枚举类
枚举类可以包含方法和字段,这使得枚举类更加灵活。
1. 示例
enum TrafficLight {
RED("Stop"), YELLOW("Caution"), GREEN("Go");
private final String action;
TrafficLight(String action) {
this.action = action;
}
public String getAction() {
return action;
}
}
2. 使用示例
TrafficLight light = TrafficLight.RED;
System.out.println(light.getAction()); // 输出:Stop
四、重写枚举类的方法
可以重写枚举类的方法,例如 toString()
方法。
enum Planet {
MERCURY("水星"), VENUS("金星"), EARTH("地球"), MARS("火星");
private final String cnName;
Planet(String cnName) {
this.cnName = cnName;
}
@Override
public String toString() {
return cnName;
}
}
2. 使用示例
Planet planet = Planet.EARTH;
System.out.println(planet.toString()); // 输出:地球
五、枚举类的高级特性
1. 实现接口
枚举类可以实现一个或多个接口。
interface Action {
void perform();
}
enum ActionType implements Action {
RUN("跑"), JUMP("跳");
private final String description;
ActionType(String description) {
this.description = description;
}
@Override
public void perform() {
System.out.println(description);
}
}
2. 使用示例
ActionType action = ActionType.RUN;
action.perform(); // 输出:跑
3. 使用 @Enum ordinal
注解
可以使用 @Enum ordinal
注解来指定枚举常量的序号。
enum Priority {
@Enum ordinal(0)
LOW("低"),
@Enum ordinal(1)
MEDIUM("中"),
@Enum ordinal(2)
HIGH("高");
private final String description;
Priority(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
}
4. 使用示例
Priority priority = Priority.LOW;
System.out.println(priority.getDescription()); // 输出:低
六、总结
枚举类是 Java 中一个非常有用的特性,它可以用来定义一组固定的常量。通过本文的介绍,我们学习了如何定义枚举类、使用枚举类以及枚举类的一些高级特性。希望这些内容能够帮助你在 Java 编程中更好地使用枚举类。