java 基礎 -- 列舉類的簡介
阿新 • • 發佈:2018-12-08
自定義列舉類:
/** * @Date: 2018/12/3 11:18 * @Description: 自定義列舉類 */ public class testEnum { public static void main(String args[]) { Season spring = Season.SPRING; System.out.println(spring); } } //自定義列舉類 class Season{ //1.提供類的屬性,宣告為 private final private final String seasonName; private final String seasonDesc; //2.宣告為final的屬性,在構造器中初始化 private Season(String seasonName ,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //3.通過公共的方法來呼叫屬性 public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } //4.建立列舉類的物件:將類的物件宣告 public static final private static final Season SPRING= new Season("spring","春暖花開"); private static final Season SUMMER= new Season("summer","夏日炎炎"); private static final Season AUTUMN= new Season("autumn","秋高氣爽"); private static final Season WINTER= new Season("winter","白雪皚皚"); @Override public String toString() { return "Season{" + "seasonName='" + seasonName + '\'' + ", seasonDesc='" + seasonDesc + '\'' + '}'; } }
若列舉只有一個物件,則可以作為是一種單例模式的實現方式。
使用enum 定義列舉類:
/** * @Date: 2018/12/3 11:18 * @Description: * 列舉類 * 1.如何自定義列舉類 * 2.如何使用enum 關鍵字定義列舉類 * > 常用的方法 * > 如何讓列舉類實現介面 * values():將列舉類裡面的所有的物件以陣列的形式返回。 * valueof():傳入string型別的引數,返回string的物件(返回列舉類的物件) */ public class testEnum1 { public static void main(String args[]) { Season1 spring = Season1.SPRING; System.out.println(spring); spring.show(); //1.values() Season1[] season1s = Season1.values(); for (int i=0;i<season1s.length; i++){ System.out.println(season1s[i]); } //2.valueof(String name):要求傳入的形參name是列舉類物件的名字。 //否則,報 java.lang.IllegalArgumentException 異常 String str = "SPRING"; Season1 season1 = Season1.valueOf(str); System.out.println(season1); Thread.State[] values = Thread.State.values(); for (int i =0 ; i< values.length ; i++){ System.out.println(values[i]); } } } interface Info{ void show(); } //自定義列舉類 enum Season1 implements Info{ SPRING("spring","春暖花開"), SUMMER("summer","夏日炎炎"), AUTUMN("autumn","秋高氣爽"), WINTER("winter","白雪皚皚"); //1.提供類的屬性,宣告為 private final private final String seasonName; private final String seasonDesc; //2.宣告為final的屬性,在構造器中初始化 private Season1(String seasonName ,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //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("123456789"); } }
執行結果: