枚举类

用enum关键字定义枚举类,地位与class interface相同,有成员变量,方法,构造器,可以实现多个接口

一个java源文件只能有一个public枚举类,且必须名字相同

与普通类区别:

  可以实现多个接口,但默认继承java.lang.Enum类,而不是Object类,所以不能显式的继承其他父类。java.lang.Enum实现了java.lang.Serializable和java.lang.Comparable两个接口

  使用enum定义,非抽象的枚举类会默认使用final修饰,所以不能派生子类

  枚举类的构造器只能用private修饰,且默认指定private

  枚举类的所有实例必须在枚举类的第一行显式的列出,否则这个枚举类不能产生实例,这些实例系统自动添加public static final修饰

  枚举类默认提供一个values()方法,用来遍历所有枚举值

public enum Season{

  SPRING,SUMMER,FALL,WINTER;//四个实例,switch case可以直接使用

  public String s;

}

使用枚举值:for(Season s : Season.values()){....}

使用成员:通过Enum的valueOf()方法获取指定枚举值创建实例:Season sea = Enum.valueOf(Season.class,"SUMMER")

  然后通过实例调用成员:sea.s

  不能通过new创建枚举类对象

实现接口:实例后面跟{...}来实现抽象方法

原文地址:https://www.cnblogs.com/zawjdbb/p/6925666.html