1. 程式人生 > 其它 >Java 基礎知識點 筆記總結

Java 基礎知識點 筆記總結

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; } }

4. enum類中的常用方法