在Java中,枚举可以使用一般的方法进行实例化类或者使用关键字enum,他可以用来作为作为枚举类型,也可以进行集成接口。具体实现如下:
1 使用类的实例化进行枚举:
//枚举类
class Season{
//提供类的属性声明为private final类型的
private final String seasonName;
private final String seasonDesc;
//声明为final的属性在构造器进行初始化
private Season(String seasonName,String seasonDesc) {
this.seasonDesc=seasonDesc;
this.seasonName=seasonName;
}
//通过公共方法进行调用属性
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
//创建枚举类对象
public static final Season Spring1=new Season("Spring1","春暖花开1");
public static final Season Spring2=new Season("Spring2","春暖花开2");
public static final Season Spring3=new Season("Spring3","春暖花开3");
public static final Season Spring4=new Season("Spring4","春暖花开4");
@Override
public String toString() {
return "Season [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]";
}
public void show() {
System.out.println("Season"+this.seasonDesc+"一个季节");
}
}
2 使用enum关键字进行枚举(这里直接进行了接口的实现,也可以不用实现接口,直接实现枚举)
//枚举类实现接口
interface info{
void show();
}
//使用关键字enum进行枚举
enum Season1 implements info{
//创建枚举类对象(这里注意枚举对象必须写在类的首部)
Spring1("Spring1","春暖花开1"){
//每个枚举类可以进行重写方法
public void show() {
System.out.println("春天在呢里");
}
},
Spring2("Spring2","春暖花开2"),
Spring3("Spring3","春暖花开3"),
Spring4("Spring4","春暖花开4");
//提供类的属性声明为private final类型的
private final String seasonName;
private final String seasonDesc;
//声明为final的属性在构造器进行初始化
private Season1(String seasonName,String seasonDesc) {
this.seasonDesc=seasonDesc;
this.seasonName=seasonName;
}
//通过公共方法进行调用属性
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
@Override
public String toString() {
return "Season [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]";
}
public void show() {
System.out.println("Season"+this.seasonDesc+"一个季节");
}
}
3 主函数测试:
public class test1 {
public static void main(String[] args) {
Season spring=Season.Spring1;
System.out.println(spring);
Season1[] sea=Season1.values();
for(int i=0;i<sea.length;i++) {
System.out.println("===="+sea[i]);
}
String str="Spring1";
//利用valueof得到一个SeaSon1的类
Season1 se=Season1.valueOf(str);
System.out.println(se);
se.show();
}
}
4 结果展示: