Java之枚举类
定义:某些情况下,一个类的对象是有限且固定的,例如季节只有四个,一年只有12个月;
1.手动实现枚举类
设计方式:
1)构造器用private修饰
2)类中所有实例都用public static final修饰
2.enum关键字
J2SE1.5新增了enum关键字,用来定义枚举类。
枚举类是一种特殊的类,它可以有自己的方法和属性,可以实现一个或多个接口,也可以定义自己的构造器。
一个Java源文件中最多只能定义一个public修饰的枚举类,并且源文件必须和枚举类类名相同。
特点:
1.枚举类可以实现一个或多个接口,用enum定义的枚举类默认继承Enum类而不是Object类。
2.构造器只能用private修饰,不加的话系统默认private。
3.所有实例必修显示列出,这些实例系统默认public static final修饰。
4.所有枚举类都提供了values方法,可以很方便的遍历所有枚举值。
定义一个枚举类:
调用该枚举类的某个实例:
SeasonEnum.SPRING;
switch语句里的表达式可以是枚举值
switch表达式可以是枚举类对象
输出结果:
所有枚举类都继承了Enum类,所以都可以使用Enum的方法:
int compareTo(E o):与指定枚举对象比较顺序,只能与同类型的枚举实例比较,如果该枚举对象位于指定枚举对象后面,返回正整数,在指定之前,返回负整数,相等返回0。
String name():返回此枚举实例的名称。
int ordinal():返回枚举值在枚举类中的索引值,即在枚举声明中的位置,第一个索引值为0.
String toString():返回枚举常量名称。
public static <T extends Enum< T >>T valueOf(Class< T >enumType,Strng name):返回指定枚举类中的指定名称的枚举值。