1. 程式人生 > >java枚舉學習筆記

java枚舉學習筆記

static pri oid 筆記 自動 final 裝箱 拆裝箱 可變參

枚舉概述:
是將變量的值一一列舉來,變量的值只限列舉的值得範圍內,比如:一周只有7天,一年只有12個月,一天24小時,一年60甲子;
單利模式:單利類是一個類的只有一個實例;

  1. 自動拆裝箱
  2. 泛型
  3. 可變參數
  4. 靜態導入
  5. 增強for循環
  6. 互斥鎖
  7. 枚舉

測試類

/**
     * @param args
     */
    public static void main(String[] args) {
        //demo1();
        //demo2();
        Week3 mon = Week3.MON;
        mon.show();
    }

第一個


    public static void demo1() {
        Week mon = Week.MON;
        Week tue = Week.TUE;
        Week wed = Week.WED;

        System.out.println(mon);
    }

    public class Week {

    public static final Week MON = new Week();
    public static final Week TUE = new Week();
    public static final Week WED = new Week();

    private Week(){}                        //私有構造,不讓其他類創建本類對象
}

第二種


    public static void demo2() {
        Week2 mon = Week2.MON;
        System.out.println(mon.getName());
    }

public class Week2 {

    public static final Week2 MON = new Week2("星期一");
    public static final Week2 TUE = new Week2("星期二");
    public static final Week2 WED = new Week2("星期三");

    private String name;
    private Week2(String name){
        this.name = name;
    }                       //私有構造,不讓其他類創建本類對象
    public String getName() {
        return name;
    }

}

第三種

public abstract class Week3 {

    public static final Week3 MON = new Week3("星期一") {  

    //匿名類
        public void show() {
            System.out.println("星期一");
        }
    };
    public static final Week3 TUE = new Week3("星期二"){
        public void show() {
            System.out.println("星期二");
        }
    };
    public static final Week3 WED = new Week3("星期三"){
        public void show() {
            System.out.println("星期三");
        }
    };

    private String name;
    private Week3(String name){
        this.name = name;
    }                       //私有構造,不讓其他類創建本類對象
    public String getName() {
        return name;
    }

    public abstract void show();
}

java枚舉學習筆記