天天看點

java新特性-枚舉

定義

簡單枚舉

package enumTest;

public enum      
Color1 color1 = Color1.RED;
Color1 color2 = Color1.RED;
System.out.println(color1 == color2);

for(Color1 color : Color1.values()){
    System.out.println(color);      
true      

有構造方法的枚舉

public enum Color2 {
    RED("紅色"), GREEN("綠色"), BLUE("藍色");//必須在第一行,否則報錯

    private String desc;

    Color2(String desc) {//要麼沒有權限通路修飾符,要麼為private
        this.desc = desc;
    }
}      

有自定義方法的枚舉

package enumTest;

public enum Color3 {
    RED("紅色"), GREEN("綠色"), BLUE("藍色");

    private String desc;

    Color3(String desc) {
        this.desc = desc;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String toString() {
        return this.desc;
    }
}      

有抽象方法的枚舉

package enumTest;

public enum Color4 {
    RED() {
        @Override
        public void desc() {
            System.out.println("紅色");
        }
    },
    GREEN() {
        @Override
        public void desc() {
            System.out.println("綠色");
        }
    },
    BLUE() {
        @Override
        public void desc() {
            System.out.println("藍色");
        }
    };

    public abstract void desc();
}