天天看点

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