枚举类使用 enum
关键字定义,其基本语法如下:
enum 枚举名 {
常量1, 常量2, ..., 常量N;
}
// 定义一个表示星期的枚举类
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
可以通过枚举类名直接访问枚举常量。
Day day = Day.MONDAY;
System.out.println(day); // 输出:MONDAY
可以使用 values()
方法遍历所有的枚举常量。
for (Day day : Day.values()) {
System.out.println(day);
}
可以使用 ordinal()
方法获取枚举常量的序号,从 0 开始。
System.out.println(Day.MONDAY.ordinal()); // 输出:0
枚举类可以包含方法和字段,这使得枚举类更加灵活。
enum TrafficLight {
RED("Stop"), YELLOW("Caution"), GREEN("Go");
private final String action;
TrafficLight(String action) {
this.action = action;
}
public String getAction() {
return action;
}
}
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;
}
}
Planet planet = Planet.EARTH;
System.out.println(planet.toString()); // 输出:地球
枚举类可以实现一个或多个接口。
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);
}
}
ActionType action = ActionType.RUN;
action.perform(); // 输出:跑
@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;
}
}
Priority priority = Priority.LOW;
System.out.println(priority.getDescription()); // 输出:低
枚举类是 Java 中一个非常有用的特性,它可以用来定义一组固定的常量。通过本文的介绍,我们学习了如何定义枚举类、使用枚举类以及枚举类的一些高级特性。希望这些内容能够帮助你在 Java 编程中更好地使用枚举类。