1. 枚舉類的說明:
* 1.枚舉類的理解:類的對象只有有限個,確定的。我們稱此類為枚舉類
* 2.當需要定義一組常量時,強烈建議使用枚舉類
* 3.如果枚舉類中只一個對象,則可以作為單例模式的實現方式。
/** * @Author lx * @Description 使用enum關鍵字定義枚舉類 * @Date 9:16 2020/8/11 * @Version */
public class EnumTest { public static void main(String[] args) { Season1 autumn = Season1.AUTUMN; System.out.println(autumn); System.out.println("******"); //values():返回所的枚舉類對象構成的數組
Season1[] values = Season1.values(); for (int i = 0;i<values.length;i++){ System.out.println(values[i]); values[i].show(); } System.out.println("*******"); //valuesOf(String objName):返回枚舉類中對象名是objName的對象。
Season1 winter = Season1.valueOf("WINTER"); System.out.println(winter); winter.show(); //如果沒objName的枚舉類對象,則拋異常:IllegalArgumentException // Season1 winter = Season1.valueOf("WINTER1");
} } //定義接口
interface info{ void show(); } //使用enum定義枚舉類
enum Season1 implements info{ //1、先提供對象,多個對象' , '隔開,末尾使用 ' ; '
SPRING("春天","春暖花開"){ @Override public void show() { System.out.println("春天到啦"); } }, SUMMER("夏天","夏日炎炎"){ @Override public void show() { System.out.println("夏天到啦"); } }, AUTUMN("秋天","秋高氣爽"){ @Override public void show() { System.out.println("秋天到啦"); } }, WINTER("冬天","白雪皚皚"){ @Override public void show() { System.out.println("冬天到啦"); } }; // 2、聲明season對象的屬性:private final
private final String SEASONNAME ; private final String SEASONDESC; //3、提供構造方法,給對象賦值
private Season1(String SEASONNAME,String SEASONDESC){ this.SEASONNAME = SEASONNAME; this.SEASONDESC = SEASONDESC; } //4、獲取枚舉類對象的屬性
public String getSEASONNAME() { return SEASONNAME; } public String getSEASONDESC() { return SEASONDESC; } // @Override // public void show() { // System.out.println("這是一個季節"); // } //根據需要決定是否重寫toString方法 // @Override // public String toString() { // return "Season1{" + // "SEASONNAME='" + SEASONNAME + '\'' + // ", SEASONDESC='" + SEASONDESC + '\'' + // '}'; // }
} //*************************************************// ////1、自定義枚舉類 //class Season1{ // //2、聲明season對象的屬性:private final // private final String SEASONNAME ; // private final String SEASONDESC; // //3、聲明類的私有化構造器,並給對象賦值 // private Season1(String SEASONNAME,String SEASONDESC){ // this.SEASONNAME = SEASONNAME; // this.SEASONDESC = SEASONDESC; // } // //3、提供當前枚舉類的多個對象:public static final修飾 // public static final Season1 SPRING = new Season1("春天","春暖花開"); // public static final Season1 SUMMER = new Season1("夏天","夏日炎炎"); // public static final Season1 AUTUMN = new Season1("秋天","秋高氣爽"); // public static final Season1 WINTER = new Season1("冬天","白雪皚皚"); //
// //獲取枚舉類對象的屬性 // public String getSEASONNAME() { // return SEASONNAME; // } //
// public String getSEASONDESC() { // return SEASONDESC; // } // //提供toString方法 // @Override // public String toString() { // return "Season1{" + // "SEASONNAME='" + SEASONNAME + '\'' + // ", SEASONDESC='" + SEASONDESC + '\'' + // '}'; // } //}