Java 基礎知識點 筆記總結
阿新 • • 發佈:2021-11-24
1. 列舉類 介紹
列舉類建立方式:
方式一:JDK1.5之前需要自定義列舉類。
方式二:JDK1.5新增的enum關鍵字用於定義列舉類。
什麼情況下,用列舉類?
2. JDK5.0之前 自定義列舉類
其實和單例模式設計原理一樣:
package com.holmes.java06; public class SeasonTest { public static void main(String[] args) { Season spring = Season.SPRING; System.out.println(spring.toString()); } } //方式一:自定義列舉類 class Season{ //1.宣告Season物件的屬性:因為自己定義的常量,因此必須唯一要用private final修改。 private final String seasonName; private final String seasonDesc; //2.私有化類的構造器,並給物件屬性賦值 private Season(String seasonName,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //3.提供當前列舉類的多個物件(就像單例模式,本類不能宣告物件,但可以呼叫方法生成物件):public static final型別! public static final Season SPRING = new Season("春天","春暖花開"); public static final Season SUMMER = new Season("夏天","夏日炎炎"); public static final Season AUTUMN = new Season("秋天","秋高氣爽"); public static final Season WINTER = new Season("冬天","冰天雪地"); //4.其他訴求1:獲取列舉類物件的屬性 public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } //4.其他訴求2:重寫toString()方法 @Override public String toString() { return "Season{" + "seasonName='" + seasonName + '\'' + ", seasonDesc='" + seasonDesc + '\'' + '}'; } }
3. JDK5.0之後 使用enum關鍵字 定義列舉類
- 定義的列舉類預設繼承於java.lang.Enum類。
package com.holmes.java06; public class SeasonTest { public static void main(String[] args) { Season summer = Season.SUMMER; //我們在沒有重寫toString()方法時,這裡預設呼叫toString()方法,但返回的結果值不是當前地址,說明這個toString()方法被重寫過! System.out.println(summer);//SUMMER //我們檢視Season類的父類 System.out.println(Season.class.getSuperclass());//class java.lang.Enum //原因就是因為他繼承了enum類,而不是Object,如果時Object返回的就是地址。 } } //方式二:使用enum關鍵字列舉類 enum Season{ //1.提供當前列舉類的物件,多個物件之間用","隔開,末尾物件用";"結束。 SPRING("春天","春暖花開"), SUMMER("夏天","夏日炎炎"), AUTUMN("秋天","秋高氣爽"), WINTER("冬天","冰天雪地"); //2.宣告Season物件的屬性:因為自己定義的常量,因此必須唯一要用private final修改。 private final String seasonName; private final String seasonDesc; //3.私有化類的構造器,並給物件屬性賦值 private Season(String seasonName,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //4.其他訴求1:獲取列舉類物件的屬性 public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } }