java如何定义一个枚举类型
定义枚举类型的基本语法
在Java中,枚举类型通过enum关键字定义。基本语法结构如下:
public enum EnumName {
CONSTANT1,
CONSTANT2,
CONSTANT3;
}
EnumName是枚举类型的名称,遵循大驼峰命名法。CONSTANT1等是枚举常量,通常全大写,用逗号分隔,分号可选(当无额外成员时)。
添加字段和方法
枚举可以像普通类一样包含字段、方法和构造方法,但构造方法必须是private:

public enum Direction {
NORTH("上"),
SOUTH("下"),
EAST("右"),
WEST("左");
private String description;
Direction(String desc) {
this.description = desc;
}
public String getDescription() {
return description;
}
}
实现接口
枚举可以实现接口,需为所有常量实现接口方法或重写默认方法:
public interface Printable {
void print();
}
public enum Status implements Printable {
ACTIVE {
@Override
public void print() {
System.out.println("运行中");
}
},
INACTIVE {
@Override
public void print() {
System.out.println("已停止");
}
};
}
使用枚举
枚举常量通过类型名直接访问,常用方法包括:

values():返回所有枚举值的数组valueOf(String):根据名称获取枚举实例ordinal():获取枚举常量的序数
示例:
Direction dir = Direction.NORTH;
System.out.println(dir.getDescription()); // 输出"上"
for (Direction d : Direction.values()) {
System.out.println(d.name() + ": " + d.ordinal());
}
枚举的高级特性
枚举支持switch语句,可定义抽象方法强制每个常量实现特定行为:
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);
}
枚举的单例特性使其天然线程安全,适合实现单例模式。






