枚举(enum)
1、基本特性
values():返回enum实例的数组
java.lang.Enum:实现了comparable和Serializable接口,所有的enum都继承该类
ordinal():返回一个int值,从0开始,声明时的次序
getDeclaringClass():返回其所属的enum类
name():返回enum声明时的名字,与toString()效果一样
valueOf():根据名字返回对应的enum实例
compareTo():
2、向enum中添加新方法
注意,如果你要定义自己的方法,那么必须在enum实例序列的最后添加一个分号,同时,Java要求必须先定义enum实例
我们只能在enum定义的内部使用构造器创建enum实例
覆盖enum的方法
3、switch语句中的enum
4、values()的神秘之处
由编译器添加的static方法
Class中的getEnumConstants():获取所有enum实例
5、实现,而非继承
6、随机选取
7、使用接口组织枚举
实现接口是使其子类化的唯一方法
8、使用EnumSet代替标志
9、使用EnumMap
命令模式
10、常量相关的方法
要实现常量相关的方法,需要为enum定义一个或多个abstract方法,然后为每个enum实例实现该抽象方法
职责链模式
策略模式
11、多路分发