Java 枚举(enum)
Java枚举(enum)技术文档
枚举(Enum)是一种特殊的数据类型,用于声明命名的常量。在Java中,枚举是由关键字enum
定义的一种新型数据类型,它可以像类一样拥有属性和方法。在本文中,我们将介绍Java中枚举的概念、用法和示例。
枚举的概念
枚举类型是一种集合类型,使用枚举类型可以定义一组常量,这组常量也被称为枚举常量。在使用枚举类型时,可以通过枚举常量的名称访问它们。枚举常量写在括号内,用逗号分隔。例如:
enum Color {
RED, GREEN, BLUE;
}
在这个示例中,我们定义了一个颜色枚举类型,其中包含三个枚举常量RED、GREEN和BLUE。
枚举的用法
常规用法
枚举通常用于定义一组相关的常量,比如表示星期几、表示颜色等。枚举类型在使用时可以像普通类型一样使用,例如:
Color color = Color.RED;
这个示例中,我们声明了一个Color类型的变量color,并将其赋值为枚举常量RED。
枚举常量的属性和方法
枚举常量可以拥有自己的属性和方法。例如,为颜色枚举类型添加RGB属性和getColor方法:
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 String getColor() {
return "(" + r + ", " + g + ", " + b + ")";
}
}
在这个示例中,我们为枚举常量RED、GREEN、BLUE添加了RGB属性,并定义了getColor方法以返回该颜色的RGB值。
switch语句中的枚举
使用枚举类型可以很方便地在switch语句中使用枚举常量。例如:
switch (color) {
case RED:
System.out.println("红色");
break;
case GREEN:
System.out.println("绿色");
break;
case BLUE:
System.out.println("蓝色");
break;
default:
System.out.println("未知颜色");
break;
}
在这个示例中,我们使用了枚举类型Color作为switch语句的判断条件,并对不同的枚举常量进行了不同的处理。
枚举的示例
下面是一个完整的枚举示例,演示了如何定义和使用枚举类型:
import java.util.Scanner;
public class EnumExample {
enum Weekday {
MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"), THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"), SUNDAY("星期日");
private String chineseName;
private Weekday(String chineseName) {
this.chineseName = chineseName;
}
public String getChineseName() {
return chineseName;
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入星期几的英文名称:");
String input = scanner.next();
Weekday weekday = Weekday.valueOf(input.toUpperCase());
System.out.println(weekday.getChineseName());
}
}
在这个示例中,我们定义了一个周几枚举类型(Weekday),并为每个枚举常量添加了中文名属性。接着,在main方法中读入一个英文星期名称,并将其转换为相应的枚举常量。最后,输出对应的中文名称。
总结
本文介绍了Java中枚举的概念、用法和示例。枚举类型是一种集合类型,用于定义一组常量。使用枚举类型时,可以像普通类型一样使用,并可以为枚举常量添加属性和方法。枚举常量可以在switch语句中使用,方便对不同的枚举常量进行处理。