public enum Season implements EnumInterfaces{
//枚舉類的實例需要在枚舉類的第I行中列出
/***
* 關於枚舉類
* 1、定義:一個類的對象的個數是有限而且是固定的,且屬性固定
* 2、手工定義枚舉類
* 2.1 私有化構造器
* 2.2 屬性使用final 來修飾
* 2.3 在內的內部創建枚舉類的對象 且使用public static final修飾
* 2.4 提供些工具方法,values(),valueOf();
* 3、枚舉類enum的關鍵字定義:
* 3.1 枚舉類對象的聲明必須放在枚舉類的第一行,聲明對象的同時即時創建
* 枚舉類對象的過程,
* SPRING("春天","春風又綠江南岸"),
SUMMER("夏天","映日荷花別樣紅");
3.2 若有屬性使用 static final 修飾,是其變爲常量,
3.4 構造器默認使用private 修飾
* 4、枚舉類常用的方法
* 4.1 values(); valueOf();
* 5、實現接口的枚舉類
* 5.1 統一在一個方法中提供各個枚舉類對象的實現,可以使用swith
* public String getInfo() {
// TODO Auto-generated method stub
switch (this) {
case SPRING:return "s---";
case SUMMER:return "summer---";
}
return null;
}
*
* */
SPRING("春天","春風又綠江南岸"),
SUMMER("夏天","映日荷花別樣紅");
private Season(String name,String desc){
this.SEASON_DESC = desc;
this.SEASON_NAME = name;
}
final String SEASON_NAME;
final String SEASON_DESC;
/* 接口實踐
* (non-Javadoc)
* @see com.enums.EnumInterfaces#getInfo()
*/
public String getInfo() {
// TODO Auto-generated method stub
switch (this) {
case SPRING:return "s---";
case SUMMER:return "summer---";
}
return null;
}
}
接口類
package com.enums;
public interface EnumInterfaces {
public String getInfo();
}
測試類
package com.enums;
import org.junit.Test;
public class TestEnum {
@Test
public void testSeason(){
//System.out.println(Season.SPRING.SEASON_DESC);
System.out.println(Season.SPRING);
System.out.println(Season2.SPRING.getSEASON_DESC());
}
//test valueOf ,values
@Test
public void testEnumMethod(){
// Season[] seasons = Season.values();
// for(Season season :seasons){
// System.out.println(season);
// }
String input = "SPRING";
Season season = Enum.valueOf(Season.class, input);
}
@Test
public void testEnumInterface(){
System.out.println(Season.SPRING.getInfo());
}
}
----