Java 枚举类型(Enum)是一种特殊的类,用于表示固定数量的常量值。枚举类型可以用于以下场景:
- 表示一组有限的固定值:枚举类型可以用来表示一组固定的常量值,例如星期、月份、颜色等。
public enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
- 状态机:枚举类型可以用来表示状态机的状态,每个状态可以有一个或多个转换。
public enum State {
START, RUNNING, PAUSED, STOPPED
}
- 选项配置:枚举类型可以用来表示一组选项配置,例如操作系统的类型、编程语言的类型等。
public enum OperatingSystem {
WINDOWS, MAC, LINUX, ANDROID, IOS
}
- 函数参数:枚举类型可以作为函数的参数,以便在函数内部根据不同的参数值执行不同的操作。
public enum Operation {
ADD, SUBTRACT, MULTIPLY, DIVIDE
}
public int performOperation(int a, int b, Operation operation) {
switch (operation) {
case ADD:
return a + b;
case SUBTRACT:
return a - b;
case MULTIPLY:
return a * b;
case DIVIDE:
return a / b;
default:
throw new IllegalArgumentException("Invalid operation");
}
}
- 遍历一组值:枚举类型可以用来遍历一组值,例如遍历一个集合中的所有元素。
public enum Color {
RED, GREEN, BLUE, YELLOW, ORANGE, PURPLE
}
public void printColors() {
for (Color color : Color.values()) {
System.out.println(color);
}
}
- 实现 switch 语句:枚举类型可以用来替代 switch 语句中的字符串常量,提高代码的可读性和安全性。
public enum Direction {
UP, DOWN, LEFT, RIGHT
}
public void move(Direction direction) {
switch (direction) {
case UP:
System.out.println("Moving up");
break;
case DOWN:
System.out.println("Moving down");
break;
case LEFT:
System.out.println("Moving left");
break;
case RIGHT:
System.out.println("Moving right");
break;
default:
throw new IllegalArgumentException("Invalid direction");
}
}