#笔记
枚举类:有限个对象
自定义枚举类code:
public class TestEnumeration { public static void main(String[] args) { // TODO 自动生成的方法存根 Season spring = Season.SPRING; spring.show(); Season winter = Season.WINTER; winter.show(); } } //枚举类 class Season{ //提供类的属性,声明为private final private final String seasonName; private final String seasonDesc; //声明为final的属性,在构造中初始化 private Season(String seasonName,String seasonDesc) { this.seasonName = seasonName; this.seasonDesc = seasonDesc; } public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } //创建枚举对象 public static final Season SPRING = new Season("春天","这是春天"); public static final Season WINTER = new Season("冬天","这是冬天"); public static final Season SUMMER = new Season("夏天","这是夏天"); public static final Season AUTUMN = new Season("秋天","这是秋天"); public void show() { System.out.println("这是"+this.getSeasonName()); } }
使用enum创建枚举类:
public class TestEnumerationEnum {
public static void main(String[] args) {
SeasonEnum spring = SeasonEnum.SPRING;
spring.show();
//values方法可以返回枚举类的对象(数组的形式返回)
SeasonEnum[] sea = SeasonEnum.values();
for(Object obj : sea) {
System.out.println(obj);
}
//.values(String name) 返回枚举类的对象
String str = "SPRING"; //不能随意乱写,否则报异常
SeasonEnum sea1 = SeasonEnum.valueOf(str);
System.out.println(sea1); //return SeasonEnum [seasonName=春天, seasonDesc=这是春天]
}
}
//enum创建枚举类
enum SeasonEnum{
//将枚举类的对象放到类的最上面并与自定义的简化为:
SPRING("春天","这是春天"),
WINTER("冬天","这是冬天"),
SUMMER("夏天","这是夏天"),
AUTUMN("秋天","这是秋天");
//提供类的属性,声明为private final
private final String seasonName;
private final String seasonDesc;
//声明为final的属性,在构造中初始化
private SeasonEnum(String seasonName,String seasonDesc) {
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
@Override
public String toString() {
return "SeasonEnum [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]";
}
public void show() {
System.out.println("这是"+this.getSeasonName());
}
}
枚举类实现接口:
public class TestEnumerationInter { public static void main(String[] args) { SeasonEnum winter = SeasonEnum.WINTER; winter.show(); //return 这是冬天 SeasonEnum sea = SeasonEnum.valueOf("SUMMER"); sea.show(); //这是夏天 } } //定义一个接口 interface EnumTest{ void show(); } //自定义枚举类 enum SeasonEnum implements EnumTest{ //将枚举类的对象放到类的最上面并与自定义的简化为: //第二种实现接口 SPRING("春天","这是春天"){ public void show() { System.out.println("Hi,春天"); } }, WINTER("冬天","这是冬天"){ public void show() { System.out.println("Hi,冬天"); } }, SUMMER("夏天","这是夏天"){ public void show() { System.out.println("Hi,夏天"); } }, AUTUMN("秋天","这是秋天"){ public void show() { System.out.println("Hi,秋天"); } }; //提供类的属性,声明为private final private final String seasonName; private final String seasonDesc; //声明为final的属性,在构造中初始化 private SeasonEnum(String seasonName,String seasonDesc) { this.seasonName = seasonName; this.seasonDesc = seasonDesc; } public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } @Override public String toString() { return "SeasonEnum [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]"; } /* 第一种实现接口------这个是常规的的实现 public void show() { System.out.println("这是"+this.getSeasonName()); } */ }