Java枚举类

简述

Java中的枚举类其实可以理解为有固定数量实例的普通类.这两者的差别主要是:在枚举类中,我们要先确定好实例的名称和种类.如下所示:

// 定义一个星期的枚举类
public enum WeekEnum {
    // 在第一行显式地列出7个枚举实例(枚举值),系统会自动添加 public static final 修饰
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;
}

如果要将复合变量作为枚举实例,则要构建对应的私有化构造器和私有变量.如下所示:

public enum WeekEnum {

    // 因为已经定义了带参数的构造器,所以在列出枚举值时必须传入对应的参数
    SUNDAY("星期日","13点"), MONDAY("星期一","13点"), TUESDAY("星期二","13点"), WEDNESDAY("星期三","13点"),
    THURSDAY("星期四","13点"), FRIDAY("星期五","13点"), SATURDAY("星期六","16点");

    // 定义一个 private 修饰的实例变量
    private String date;
    private String time;

    // 定义一个带参数的构造器,枚举类的构造器只能使用 private 修饰
    private WeekEnum(String date, String time) {
        this.date = date;
        this.time = time;
    }

    // 定义 get set 方法
    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

}

如果要将Bean作为枚举实例,则如下所示:

enum ClassEnum {
        A(A.class),
        B(B.class),
        C(C.class);

        private Class<? extends BaseClass> instance ;

        ProcessStrategyEnum(Class<? extends BaseClass> instance) {
            this.instance = instance;
        }
}

class A extends BaseClass{
}

class B extends BaseClass{
}

class C extends BaseClass{
}

另外,枚举类也提供了valus(),name()等方法可以用来得到所有枚举类型和名字.

你可能感兴趣的:(JavaSE基础)