在Java中,枚举的定义有两种方法:
方式一:JDK5.0之前,自定义枚举类
方式二:JDK5.0时,可以使用enum关键字定义枚举类
例如:举例定义一个季节,包含春夏秋冬,以及每个季节的描述。
方式一:
//自定义枚举类
class Season
{
//1、声明Season对象的属性
private final String SeasonName;
private final String SeasonDesc;
//2、私有化类的构造器,并给对象属性赋值
private Season(String seasonName,String seasonDesc)
{
this.SeasonName=seasonName;
this.SeasonDesc=seasonDesc;
}
//3、提供当前枚举类的多个对象:public static final的
public static final Season SPRING =new Season("春天","春暖花开");
public static final Season SUMMER =new Season("夏天","夏日炎炎");
public static final Season AUTUMN =new Season("秋天","秋高气爽");
public static final Season WINTER =new Season("冬天","冰天雪地");
//4、其他诉求:获取枚举类对象的属性
public String getSeasonName() {
return SeasonName;
}
public String getSeasonDesc() {
return SeasonDesc;
}
//5、其他诉求:提供toString()
@Override
public String toString() {
return "Season{" +
"SeasonName='" + SeasonName + '\'' +
", SeasonDesc='" + SeasonDesc + '\'' +
'}';
}
}
方式二:
//自定义枚举类
enum Season1
{
//1、提供当前枚举类的对象,多个对象之间用","隔开,末尾用";"结束
SPRING("春天","春暖花开"){
@Override
public void show() {
System.out.println("春天");
}
},
SUMMER("夏天","夏日炎炎"){
@Override
public void show() {
System.out.println("夏天");
}
},
AUTUMN("秋天","秋高气爽"){
@Override
public void show() {
System.out.println("秋天");
}
},
WINTER("冬天","冰天雪地"){
@Override
public void show() {
System.out.println("冬天");
}
};
//2、声明Season对象的属性
private final String SeasonName;
private final String SeasonDesc;
//3、私有化类的构造器,并给对象属性赋值
private Season1(String seasonName,String seasonDesc)
{
this.SeasonName=seasonName;
this.SeasonDesc=seasonDesc;
}
//4、其他诉求:获取枚举类对象的属性
public String getSeasonName() {
return SeasonName;
}
public String getSeasonDesc() {
return SeasonDesc;
}
}
要注意的是:
1、如果使用enum关键字,那么虽然没有显示的写上继承于哪一个类,那么它的父类是java.lang.Enum类。