枚举
- 需要定义一组常量时建议使用枚举类
- 枚举类的对象只有有限个,确定的
- 如果类中只有一个对象,则可以作为单例模式的实现方式
枚举类编写
public enum Season implements info{
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("冬天冬天");
}
};
private final String seasonName;
private final String seasonDesc;
private Season(String seasonName, String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
// @Override
// public void show() {
// System.out.println("这里可以实现接口");
// }
// @Override
// public String toString() {
// return "Season{" +
// "seasonName='" + seasonName + '\'' +
// ", seasonDesc='" + seasonDesc + '\'' +
// '}';
// }
}
接口编写
public interface info {
void show();
}
测试类编写
public class SeasonTest {
public static void main(String[] args) {
//测试枚举类
Season autumn = Season.AUTUMN;
System.out.println(autumn);
//values()方法:返回枚举类型的对象数组
Season[] values = Season.values();
for (Season value : values) {
System.out.println(value);
}
//valueOf(String str):可以把一个字符串转为对应的枚举类对象,即返回枚举类中对象名为str的对象
Season winter = Season.valueOf("WINTER");
System.out.println(winter);
//toString():返回当前枚举类对象的名称
System.out.println(winter.toString());
//让枚举类中的的对象实现接口方法
Season summer = Season.SUMMER;
summer.show();
}
}