java枚举如何引用
Java枚举的引用方法
在Java中,枚举(Enum)是一种特殊的类,用于表示一组固定的常量。引用枚举值的方式与引用类的静态成员类似。
直接引用枚举值
枚举值可以直接通过枚举类型名和枚举值名引用:
enum Color {
RED, GREEN, BLUE
}
public class Main {
public static void main(String[] args) {
Color myColor = Color.RED;
System.out.println(myColor); // 输出: RED
}
}
在switch语句中使用枚举
枚举常与switch语句结合使用:
enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
public class Main {
public static void main(String[] args) {
Day today = Day.WEDNESDAY;
switch(today) {
case MONDAY:
System.out.println("星期一");
break;
case WEDNESDAY:
System.out.println("星期三");
break;
default:
System.out.println("其他日子");
}
}
}
枚举作为方法参数
枚举可以作为方法的参数类型:
enum Status {
ON, OFF
}
public class Device {
public void setStatus(Status status) {
System.out.println("设备状态设置为: " + status);
}
}
public class Main {
public static void main(String[] args) {
Device device = new Device();
device.setStatus(Status.ON);
}
}
枚举的values()和valueOf()方法
每个枚举类型自动包含两个静态方法:
enum Season {
SPRING, SUMMER, AUTUMN, WINTER
}
public class Main {
public static void main(String[] args) {
// 获取所有枚举值
Season[] seasons = Season.values();
for (Season s : seasons) {
System.out.println(s);
}
// 通过字符串获取枚举值
Season winter = Season.valueOf("WINTER");
System.out.println(winter);
}
}
带有属性和方法的枚举
枚举可以包含字段、方法和构造函数:
enum Planet {
MERCURY(3.303e+23, 2.4397e6),
VENUS(4.869e+24, 6.0518e6),
EARTH(5.976e+24, 6.37814e6);
private final double mass; // 质量(kg)
private final double radius; // 半径(m)
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
public double getMass() { return mass; }
public double getRadius() { return radius; }
}
public class Main {
public static void main(String[] args) {
Planet earth = Planet.EARTH;
System.out.println("地球质量: " + earth.getMass() + " kg");
}
}
枚举实现接口
枚举可以实现接口,为每个枚举值提供不同的行为:
interface Operation {
double apply(double x, double y);
}
enum BasicOperation implements Operation {
PLUS {
public double apply(double x, double y) { return x + y; }
},
MINUS {
public double apply(double x, double y) { return x - y; }
};
}
public class Main {
public static void main(String[] args) {
System.out.println(BasicOperation.PLUS.apply(3, 4)); // 输出: 7.0
}
}
枚举集合的使用
Java集合框架提供了专门处理枚举的类:

enum Priority {
LOW, MEDIUM, HIGH
}
public class Main {
public static void main(String[] args) {
EnumSet<Priority> priorities = EnumSet.of(Priority.MEDIUM, Priority.HIGH);
System.out.println(priorities.contains(Priority.HIGH)); // 输出: true
EnumMap<Priority, String> messages = new EnumMap<>(Priority.class);
messages.put(Priority.HIGH, "紧急任务");
System.out.println(messages.get(Priority.HIGH)); // 输出: 紧急任务
}
}






