/*
- 一、枚举类
- 1.如何自定义枚举类
- 2.如何使用eunm关键字来定义枚举类
-
常用的方法 Values() ValueOf()
-
如何让枚举类实现接口:可以让不同枚举类的对象调用被重写的抽象方法,执行的效果不一样
- (相当于让每个对象重写抽象方法)
*/
1.然后和自定义枚举类
package meijulei;
public class TestSeason {
public static void main(String[] args) {
Season spring = Season.Fall;
spring.show();
}
}
//枚举类
class Season{
//1.提供类的属性,声明为private final
private final String seasonName;
private final String seasonDesc;
//2.声明为final的属性在构造器中初始化
private Season(String seasonName,String seasonDesc) {
this.seasonDesc = seasonDesc;
this.seasonName = seasonName;
}
//3.通过公共的方法来调用属性
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("这是"+this.seasonName);
}
//4.创建枚举类的对象 (用public static final 修饰)
public static final Season Spring = new Season("spring","春暖花开");
public static final Season Summer = new Season("Summer","夏日炎炎");
public static final Season Fall = new Season("Fall","秋高气爽");
public static final Season Winter = new Season("Winter","白雪皑皑");
}
2.如何使用eunm关键字来定义枚举类
>常用的方法 Values() ValueOf()
-
如何让枚举类实现接口:可以让不同枚举类的对象调用被重写的抽象方法,执行的效果不一样
- (相当于让每个对象重写抽象方法)
public class TestSeason2 {
public static void main(String[] args) {
Season spring = Season.Fall;
spring.show();
Season2[] seasons = Season2.values();
System.out.println(seasons);
for(int i = 0; i < seasons.length;i++) {
System.out.println(seasons[i]);
}
//valueOf(String name) :要求 传入的形参name是枚举类对象的名字,否则报错。
String str = "Spring";
Season2 sea = Season2.valueOf("Spring");
System.out.println(sea);
sea.show();
Thread.State[]xc = Thread.State.values();
for(int i = 0; i < xc.length;i++) {
System.out.println(xc[i]);
}
}
}
interface info{
void show();
}
//枚举类
enum Season2 implements info{
Spring("spring","春暖花开"){
public void show() {
System.out.println("春天在哪里");
}
},
Summer("Summer","夏日炎炎"){
public void show() {
System.out.println("生如夏花");
}
},
Fall("Fall","秋高气爽"){
public void show() {
System.out.println("秋天是用来分手的季节");
}
},
Winter("Winter","白雪皑皑"){
public void show() {
System.out.println("冬天里的一把火");
}
};
private final String seasonName;
private final String seasonDesc;
private Season2(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 "Season2 [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]";
}
// public void show() {
// System.out.println("这是"+this.seasonName);
// }
}