Java系列2---枚举

133 阅读1分钟

枚举(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、多路分发