一.枚举解决的问题
可以把枚举看做一个类,可以定义一些方法和属性,但是枚举不能继承其它类,因为它已经继承了Enum类。枚举可以用来定义一些有限并确定值的类,如:一年只有春夏秋冬,一个星期只有7天等等。
定义实例如下:
public enum Color{
RED,BLUE;
}
以上定义了一个Color枚举,就只有二个值,如果取其它值就会报错。
使用"枚举.values()"的形式可以将全部值转换为对象数组,之后可以使用foreach进行输出。
枚举类型继承了Enum类,此类实现了Comparable和Serializable接口,说明枚举类能使用比较器和序列化操作。
上图为Enum类中的一些方法,可以应用试试。
类集也有对枚举的支持,有EnumMap和EnumSet二个集合,使用前要先创建枚举类,EnumSet的方法如下图:
枚举类可以实现接口,每个枚举对象都必须实现接口中的抽象方法;
枚举类中也可以定义抽象类,每个枚举对象都分别实现抽象方法。