#笔记
枚举类:有限个对象
自定义枚举类code:
public classTestEnumeration {public static voidmain(String[] args) {//TODO 自动生成的方法存根
Season spring =Season.SPRING;
spring.show();
Season winter=Season.WINTER;
winter.show();
}
}//枚举类
classSeason{//提供类的属性,声明为private final
private finalString seasonName;private finalString seasonDesc;//声明为final的属性,在构造中初始化
privateSeason(String seasonName,String seasonDesc) {this.seasonName =seasonName;this.seasonDesc =seasonDesc;
}publicString getSeasonName() {returnseasonName;
}publicString getSeasonDesc() {returnseasonDesc;
}//创建枚举对象
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 voidshow() {
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 classTestEnumerationInter {public static voidmain(String[] args) {
SeasonEnum winter=SeasonEnum.WINTER;
winter.show();//return 这是冬天
SeasonEnum sea= SeasonEnum.valueOf("SUMMER");
sea.show();//这是夏天
}
}//定义一个接口
interfaceEnumTest{voidshow();
}//自定义枚举类
enum SeasonEnum implementsEnumTest{//将枚举类的对象放到类的最上面并与自定义的简化为://第二种实现接口
SPRING("春天","这是春天"){public voidshow() {
System.out.println("Hi,春天");
}
},
WINTER("冬天","这是冬天"){public voidshow() {
System.out.println("Hi,冬天");
}
},
SUMMER("夏天","这是夏天"){public voidshow() {
System.out.println("Hi,夏天");
}
},
AUTUMN("秋天","这是秋天"){public voidshow() {
System.out.println("Hi,秋天");
}
};//提供类的属性,声明为private final
private finalString seasonName;private finalString seasonDesc;//声明为final的属性,在构造中初始化
privateSeasonEnum(String seasonName,String seasonDesc) {this.seasonName =seasonName;this.seasonDesc =seasonDesc;
}publicString getSeasonName() {returnseasonName;
}publicString getSeasonDesc() {returnseasonDesc;
}
@OverridepublicString toString() {return "SeasonEnum [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]";
}/*第一种实现接口------这个是常规的的实现
public void show() {
System.out.println("这是"+this.getSeasonName());
}*/}