一、什么是枚举
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性
在Java中,被 enum 关键字修饰的类型就是枚举类型
Java 中的每一个枚举都继承自 java.lang.Enum 类。当定义一个枚举类型时,每一个枚举类型成员都可以看作是 Enum 类的实例,这些枚举成员默认都被 final、public、 static 修饰,当使用枚举类型成员时,直接使用枚举名称调用成员即可。
枚举常用的方法:
values() 以数组形式返回枚举类型的所有成员
valueOf() 将普通字符串转换为枚举实例
compareTo() 比较两个枚举成员在定义时的顺序
ordinal() 获取枚举成员的索引位置
二、无参数的枚举
下面是一个颜色枚举类及使用
public enum Color {
GREEN,RED,BLUE,BLANK, YELLOW;
}
public static void main(String[] args){
for(Color c: Color.values()){
System.out.println(c.ordinal()+c.name());
}
}
结果输出
0GREEN
1RED
2BLUE
3BLANK
4YELLOW
三、带参数的枚举
1.带一个参数的枚举类及使用
public enum ClassRoom {
FIRST_GRADE(1,"一年级"),SECOND_GRADE(2,"二年级");
private Integer classNum;
private String className;
ClassRoom(Integer classNum, String className) {
this.classNum = classNum;
this.className = className;
}
public Integer getClassNum() {
return classNum;
}
public String getClassName() {
return className;
}
}
public static void main(String[] args){
System.out.println(Season.SPRING.getChinese());
}
结果输出
春天
2.带多个参数的枚举类及使用
public enum ClassRoom {
FIRST_GRADE(1,"一年级"),SECOND_GRADE(2,"二年级");
private Integer classNum;
private String className;
ClassRoom(Integer classNum, String className) {
this.classNum = classNum;
this.className = className;
}
public Integer getClassNum() {
return classNum;
}
public String getClassName() {
return className;
}
}
public static void main(String[] args){
System.out.println(ClassRoom.FIRST_GRADE.getClassNum()+ClassRoom.FIRST_GRADE.getClassName());
}
结果输出
1一年级