Java中的枚举是一种特殊的数据类型,它允许我们定义一组有限的常量。枚举常量在程序中是唯一的,可以用于代表一些固定的值,例如星期几、月份、颜色等等。
Java中的枚举类型是通过关键字enum
来定义的。下面是一个简单的枚举示例:
enum Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
我们也可以使用枚举字面量来访问特定的值。例如:
Day monday = Day.MONDAY;
Day tuesday = Day.TUESDAY;
每个枚举字面量都是枚举类型的实例,并且它们都是final类型的。这意味着一旦被赋值就不能再被改变。
枚举字面量之间可以使用equals()和hashCode()方法进行比较。例如:
if (monday.equals(tuesday)) {
System.out.println("Monday is equal to Tuesday");
} else {
System.out.println("Monday is not equal to Tuesday");
}
枚举类型还具有一些其他的功能,例如可以使用switch语句和增强型for循环。例如:
switch (day) {
case MONDAY:
System.out.println("It's Monday");
break;
case TUESDAY:
System.out.println("It's Tuesday");
break;
// and so on for the other days...
default:
System.out.println("It's not a valid day");
break;
}
或者使用增强型for循环:
for (Day day : Day.values()) {
System.out.println(day);
}
枚举类型还可以包含方法和构造函数。下面是一个带有方法和构造函数的枚举示例:
enum Color {
RED(255, 0, 0),
GREEN(0, 255, 0),
BLUE(0, 0, 255);
private int r;
private int g;
private int b;
private Color(int r, int g, int b) {
this.r = r;
this.g = g;
this.b = b;
}
public int getR() {
return r;
}
public int getG() {
return g;
}
public int getB() {
return b;
}
}
我们可以使用枚举类型来访问枚举常量的属性和方法,例如:
Color red = Color.RED;
int r = red.getR(); // r = 255