(初学java,个人见解,不一定正确)
创建一个Season类
package Season;
public enum Season {//Season这种枚举类型,只能有四个对象,有顺序,下标从0开始
//季节,一年四季
SPRING("春天"){
//各枚举对象自己去实现抽象方法
public void playGame() {
System.out.println("去武大看樱花");
}
},SUMMER("夏天"){
public void playGame() {
System.out.println("去赤壁玩");
}
},AUTUMN("秋天"){
public void playGame() {
System.out.println("去森林公园玩");
}
},WINTER("冬天"){
public void playGame() {
System.out.println("去护城河玩");
}
};//用来固定枚举的具体值
//枚举的设计跟类的设计相似
public String s;//可以有属性
//public的意思是别人可以拿去创建对象,不可能new+构造创建枚举对象
Season(String xxx){//给枚举设计构造,就是用来对枚举进行初始化
this.s=xxx;
}
//可以设计实例方法
public void showTitle(){
System.out.println("当前季节是:"+s);
}
//不能统一的方法,可以设计抽象方法
public abstract void playGame();
}
创建一个main方法
package Season;
import static org.junit.Assert.*;
import org.junit.Test;
public class TestSeason {
@Test
public void test(){
//想要季节对象
Season s1=Season.SPRING;//下标0
Season s2=Season.SUMMER;//1
Season s3=Season.AUTUMN;//2
Season s4=Season.WINTER;//3
//学习枚举的API
Season[] ses=Season.values();
for(int i=0;i<ses.length;i++){
ses[i].playGame();
}
//枚举对象的位置比较
//大于0,等于0,小于0的整数
int i=s1.compareTo(s4);//0-3=-3表示s4在s1的后三个
System.out.println(i);
Season se=Season.valueOf("SPRING");//根据指定的名字获取该枚举对象
System.out.println(se.s);
}