java枚举类型enum用法详解
原创Java枚举类型Enum用法详解
Java中的枚举(Enum)类型是Java 5引入的一个新特性,它允许开发者通过一个特殊的类型来描述一组具有预定义值的变量。使用枚举可以更加明了、保险地描述一组固定的值,如星期、月份、操作系统类型等。本文将详细介绍Java枚举类型的用法。
定义枚举类型
枚举类型的定义通过关键字enum
来实现,以下是一个简洁的枚举类型示例:
enum Weekday {
MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
枚举的成员
枚举类型中的每一个值都是一个枚举常量,这些常量默认被public static final
修饰,令可以直接通过枚举类型名访问。例如:
Weekday day = Weekday.MONDAY;
枚举构造函数
枚举可以有构造函数,构造函数是私有的,归因于枚举常量是隐式静态的,不允许外部调用。以下是一个带构造函数的枚举示例:
enum Weekday {
MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"),
THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"), SUNDAY("星期日");
private String description;
private Weekday(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
}
枚举的方法
枚举可以有字段、方法和构造函数。除了构造函数外,枚举可以有抽象方法,但是枚举必须为所有的抽象方法提供实现。以下是一个带有方法的枚举示例:
enum Operation {
PLUS {
double apply(double x, double y) {
return x + y;
}
},
MINUS {
double apply(double x, double y) {
return x - y;
}
},
TIMES {
double apply(double x, double y) {
return x * y;
}
},
DIVIDE {
double apply(double x, double y) {
return x / y;
}
};
abstract double apply(double x, double y);
}
枚举的遍历
可以通过values()
方法获取枚举类型的所有值,并使用循环进行遍历:
for (Weekday day : Weekday.values()) {
System.out.println(day);
}
枚举的比较
枚举类型可以通过equals()
方法进行比较,也可以使用==
直接比较枚举常量:
Weekday day1 = Weekday.MONDAY;
Weekday day2 = Weekday.MONDAY;
if (day1 == day2) {
System.out.println("相同");
}
if (day1.equals(day2)) {
System.out.println("相等");
}
总结
Java枚举类型enum
是一个强势的特性,它提供了一种简洁、保险的方法来描述一组固定的值。枚举可以包含字段、方法和构造函数,也可以实现接口。通过本文的介绍,期待读者能够掌握Java枚举类型的基本用法。