一、枚举的定义
public enum SeasonEnum {
SPRING,SUMMER,AUTUMN,WINTER;
}
常用方法如下
方法 | 说明 |
---|---|
values() 静态的自动生成的 | 可以遍历enum实例,其返回enum实例的数组 |
ordinal() 父类的实例方法 | 返回每个实例在声明时的次序 |
name() 父类的实例方法 | 返回enum实例声明时的名称 |
getDeclaringClass() | 返回其所属的enum类 |
valueOf() 静态的自动生成的 | 根据给定的名称返回相应的enum实例 |
public static void main(String[] args) {
SeasonEnum[] items = SeasonEnum.values();
for (int i = 0; i < items.length; i++) {
System.out.println(items[i].ordinal());
System.out.println(items[i].name());
System.out.println(items[i].getDeclaringClass());
System.out.println(SeasonEnum.valueOf(SeasonEnum.class, items[i].name()));
System.out.println("--------------------------");
}
}
二、Enum中添加方法
Enum 可以看做是一个常规类(除了不能继承自一个enum)
public enum SeasonEnum {
SPRING("春天","过敏"),
SUMMER("夏天","热"),
AUTUMN(),
WINTER();
private String name;
private String detail;
SeasonEnum() {
}
SeasonEnum(String name, String detail) {
this.name = name;
this.detail = detail;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
}
三、Switch中的枚举
Switch可以直接这样
SeasonEnum season = SeasonEnum.SPRING;
switch (season){
case SPRING:
System.out.println("春天来了!");
case SUMMER:
System.out.println("夏天来了!");
case AUTUMN:
System.out.println("秋天来了!");
case WINTER:
System.out.println("冬天来了!");
default:
System.out.println("也没有别的季节了。");
}
- 常规情况下必须使用 enum 类型来修饰 enum 实例,但在 case 语句中不必如此。
- 意思就是
case SPRING:
不需要写成case SeasonEnum.SPRING:
。
四、静态导入
- static import 可以将 enum 实例的标识符带入当前类,无需再用enum类型来修饰 enum 实例
import static com.ydlclass.SeasonEnum.*;
public class Test {
public static void main(String[] args) {
System.out.println(SPRING.name());
System.out.println(SUMMER.name());
}
}