一、枚举类的使用
1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类
2.当需要定义一组常量时,强烈建议使用枚举类
3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式
二、枚举类的定义
方式一: jdk5.0之前,自定义枚举类
//自定义枚举类
class Season {
//1.声明Season对象的属性:private final修饰
private final String seasonName;
private final String seasonDesc;
//2.私有化类的构造器,并给对象属性赋值
private Season(String seasonName,String seasonDesc){
this.seasonName = seasonName;
this .seasonDesc = seasonDesc
}
//3.提供当前枚举类的多个对象: publiu static final
public static final Season SPRING = new Season(seasonName:"春天",seasonDesc: "春暖花开")
public static final Season SUMMER = new season(seasonName:"夏天",seasonDesc: "夏日炎炎")
public static final Season AUTUMN = new season(seasonName:"秋天",seasonDesc: "秋高气爽")
public static final Season WINTER = new Season(seasonName:"冬天",seasonDesc: "冰天雪地")
}
方式二: jdk5.0,可以使用enum关键字定义枚举类
说明:定义的枚举类默认继承于java.Lang.Enum类
//使用enum关键字枚举类
enum Season{
//1.提供当前故举类的对象,多个对象之间用”,"隔开,未尾对象”;”结束
SPRING("春天","春暖花开"),
SUMMER("夏天","夏日炎炎"),
AUTUMN("秋天","秋高气爽"),
WINTER("冬天","冰天雪地");
//2.声明season对象的属性:privatefinal修饰
private final String seasonName;
private final String seasonDesc;
//3.其他诉求: 获取校举类对象的属性
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
}
三、Enum类的主要方法
![](https://img-blog.csdnimg.cn/img_convert/f8854185a549744a46fc6e7325eb977c.png)
![](https://img-blog.csdnimg.cn/img_convert/942762a4fa9522682df66fe9e544691a.png)
四、使用enum关键字定义的枚举类实现接口的情况
情况一:实现接口,在enum类中实现抽象方法
情况二: 让枚举类的对象分别实现接口中的抽象方法
//让枚举类的对象分别实现接口中的抽象方法
enum Season implement Info{
//1.提供当前故举类的对象,多个对象之间用”,"隔开,未尾对象”;”结束
SPRING("春天","春暖花开") {
@Override
public void show() {
System.out.println(SPRING.toString());
}
},
SUMMER("夏天","夏日炎炎") {
@Override
public void show() {
System.out.println(SUMMER.toString());
}
},
AUTUMN("秋天","秋高气爽") {
@Override
public void show() {
System.out.println(AUTUMN.toString());
}
},
WINTER("冬天","冰天雪地") {
@Override
public void show() {
System.out.println(WINTER.toString());
}
};
//2.声明season对象的属性:privatefinal修饰
private final String seasonName;
private final String seasonDesc;
//3.其他诉求: 获取校举类对象的属性
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
}