微軟 Win11 安卓子系統 1.8.32828 更新
阿新 • • 發佈:2021-11-21
1 package com.atfu.java; 2 3 /** 4 * 一、列舉類的使用 5 * 1.列舉類的理解:類的物件只有有限個,確定的。我們稱此類為列舉類 6 * 2.當需要定義一組常量時,強烈建議使用列舉類 7 * 3.如果列舉類中只有一個物件,則可以作為單例模式的實現方式。 8 * 9 * 二、如何定義列舉類 10 * 方式一:jdk5.0之前,自定義列舉類 11 * 方式二:jdk5.0,可以使用enum關鍵字定義列舉類 12 * 13 * 14 * 15 * @author fu jingchao 16 * @creat 2021/12/5-15:2717 */ 18 public class SeasonTest { 19 public static void main(String[] args) { 20 Season autumn = Season.AUTUMN; 21 System.out.println(autumn); 22 } 23 } 24 25 //自定義列舉類 26 class Season{ 27 //1.宣告Season物件的屬性:private,final 28 private final String seasonName; 29 private finalString seasonDesc; 30 31 //2.私有化類的構造器,並給物件屬性初始化 32 private Season(String seasonName,String seasonDesc){ 33 this.seasonName = seasonName; 34 this.seasonDesc = seasonDesc; 35 } 36 //3.提供當前列舉類的多個物件:宣告為 public static final 37 public static final Season SPRING = new Season("春天","春暖花開");38 public static final Season SUMMER = new Season("夏天","夏日炎炎"); 39 public static final Season AUTUMN = new Season("秋天","秋高氣爽"); 40 public static final Season WINTER = new Season("冬天","冰天雪地"); 41 42 //4.獲取列舉物件的屬性 43 44 public String getSeasonName() { 45 return seasonName; 46 } 47 48 public String getSeasonDesc() { 49 return seasonDesc; 50 } 51 //5.提供toSting方法 52 53 54 @Override 55 public String toString() { 56 return "Season{" + 57 "seasonName='" + seasonName + '\'' + 58 ", seasonDesc='" + seasonDesc + '\'' + 59 '}'; 60 } 61 }
1 package com.atfu.java; 2 3 /** 4 * 使用enum關鍵字來定義列舉類 5 * 說明:定義的列舉類預設繼承於java.lang.Enum類 6 * 一、Enum類中的常用方法: 7 * 1.values()方法:返回列舉型別的物件陣列。該方法可以很方便的遍歷所有的列舉值。 8 * 2.valueOf(String str):可以把一個字串轉換成對應的列舉物件。要求字串必須是列舉類物件的 “名字” 。如不是,會有執行時異常 9 * 3.toString():返回當前列舉物件常量的名稱。 10 *二、使用enum關鍵字定義的列舉類實現介面的情況 11 * 情況一:實現介面,再enum類中實現抽象方法 12 * 情況二:讓列舉類的物件分別實現介面中的抽象方法 13 * 14 * 15 * @author fu jingchao 16 * @creat 2021/12/5-16:00 17 */ 18 public class SeasonTest1 { 19 public static void main(String[] args) { 20 Season1 summer = Season1.SUMMER; 21 System.out.println(summer); 22 System.out.println(Season1.class.getSuperclass()); 23 System.out.println("***********************************"); 24 //values() 25 Season1[] values = Season1.values(); 26 for (int i = 0; i < values.length; i++) { 27 System.out.println(values[i]); 28 values[i].show(); 29 } 30 31 } 32 } 33 34 interface Info{ 35 void show(); 36 } 37 38 //自定義列舉類 39 enum Season1 implements Info{ 40 41 //1.提供當前列舉類的多個物件:多個物件之間用逗號隔開,末尾物件用分號結束 42 SPRING("春天","春暖花開"){ 43 @Override 44 public void show() { 45 System.out.println("這是春天"); 46 } 47 }, 48 SUMMER("夏天","夏日炎炎") { 49 @Override 50 public void show() { 51 System.out.println("這是夏天"); 52 } 53 }, 54 AUTUMN("秋天","秋高氣爽") { 55 @Override 56 public void show() { 57 System.out.println("這是秋天"); 58 } 59 }, 60 WINTER("冬天","冰天雪地") { 61 @Override 62 public void show() { 63 System.out.println("這是冬天"); 64 } 65 }; 66 67 //2.宣告Season物件的屬性:private,final 68 private final String seasonName; 69 private final String seasonDesc; 70 71 //3.私有化類的構造器,並給物件屬性初始化 72 private Season1(String seasonName,String seasonDesc){ 73 this.seasonName = seasonName; 74 this.seasonDesc = seasonDesc; 75 } 76 77 //4.獲取列舉物件的屬性 78 public String getSeasonName() { 79 return seasonName; 80 } 81 82 public String getSeasonDesc() { 83 return seasonDesc; 84 } 85 86 // @Override 87 // public void show() { 88 // System.out.println("季節"); 89 // } 90 //不重寫toString方法 91 // //5.提供toSting方法 92 // @Override 93 // public String toString() { 94 // return "Season{" + 95 // "seasonName='" + seasonName + '\'' + 96 // ", seasonDesc='" + seasonDesc + '\'' + 97 // '}'; 98 // } 99 }此為本人學習筆記,若有錯誤,請不吝賜教