由于枚举类型较传统定义常量的方式,除具有参数类型检测的优势外,还具有其他方面的优势。
用户可以将一个枚举类型看作是一个类,它继承java.lang.Enum类。
枚举类型成员都默认被final、public、static修饰,所有当使用枚举类型成员时直接使用枚举类型名称调用枚举类型成员即可
由于枚举类型对象继承java.lang.Enum类,所有该类中一些操作枚举类型的方法都可以应用到枚举类型。
public class seasonDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
printSeason1(3);
printSeason2(SeasonEnum.spring);
}
private static void printSeason2(SeasonEnum season) {
switch(season) {
case spring:System.out.println("春季");break;
case summer:System.out.println("夏季");break;
case autumn:System.out.println("秋季");break;
case winter:System.out.println("冬季");break;
default: System.out.println("数字有误");break;
}
}
private static void printSeason1(int i) {
switch(i){
case SeasonInterface.spring:System.out.println("春季");break;
case SeasonInterface.summer:System.out.println("夏季");break;
case SeasonInterface.autumn:System.out.println("秋季");break;
case SeasonInterface.winter:System.out.println("冬季");break;
default: System.out.println("数字有误");break;
}
}
}
public interface SeasonInterface {
final int spring = 1;
final int summer = 2;
final int autumn = 3;
final int winter = 4;
}
public enum SeasonEnum {
spring("万物复苏"),
summer("夏日炎炎"),
autumn("秋高气爽"),
winter("白雪皑皑");
String introduce;
public String getIntroduce() {
return introduce;
}
private SeasonEnum(String introduce) {
this.introduce = introduce;
}
}
public class seasonDemo {
public static void main(String[] args) {
SeasonEnum[] seasons = SeasonEnum.values();
for(int i=0; i<seasons.length; i++) {
SeasonEnum season = seasons[i];
System.out.println(season);
System.out.println(season.ordinal());
System.out.println(season.getIntroduce());
System.out.println("----------");
}
}
}