java如何设置枚举
设置枚举的基本语法
在Java中,枚举是一种特殊的类,用于表示一组固定的常量。枚举使用enum关键字定义,常量之间用逗号分隔。
public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
枚举的属性和方法
枚举可以包含属性和方法,为每个枚举常量提供更多信息或行为。
public enum Planet {
MERCURY(3.303e+23, 2.4397e6),
VENUS(4.869e+24, 6.0518e6),
EARTH(5.976e+24, 6.37814e6);
private final double mass;
private final double radius;
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
public double getMass() {
return mass;
}
public double getRadius() {
return radius;
}
}
枚举的构造函数
枚举的构造函数必须是私有的,因为枚举常量在定义时就已经实例化,外部无法创建新的实例。
public enum Direction {
NORTH("N"), SOUTH("S"), EAST("E"), WEST("W");
private final String abbreviation;
Direction(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getAbbreviation() {
return abbreviation;
}
}
枚举的抽象方法
枚举可以定义抽象方法,每个枚举常量必须实现该方法。
public enum Operation {
PLUS {
public double apply(double x, double y) {
return x + y;
}
},
MINUS {
public double apply(double x, double y) {
return x - y;
}
};
public abstract double apply(double x, double y);
}
枚举的常用方法
枚举提供了一些内置方法,如values()和valueOf()。
Day[] days = Day.values(); // 返回所有枚举常量
Day day = Day.valueOf("MONDAY"); // 根据名称返回枚举常量
枚举与switch语句
枚举常用于switch语句,提供清晰的逻辑分支。
Day day = Day.MONDAY;
switch (day) {
case MONDAY:
System.out.println("星期一");
break;
case TUESDAY:
System.out.println("星期二");
break;
default:
System.out.println("其他");
}
枚举实现接口
枚举可以实现接口,为所有枚举常量提供统一的行为。

public interface Displayable {
void display();
}
public enum Color implements Displayable {
RED {
public void display() {
System.out.println("红色");
}
},
GREEN {
public void display() {
System.out.println("绿色");
}
};
}






