枚举类概述在某些情况下,一个类的对象是有限而且固定的,例如季节类。只能有四个对象
手动实现枚举类:
prvate修饰构造器
属性使用private final修饰
把该类的所有实例都使用public static final来修饰
使用enum定义枚举类
jdk1.5新增的enum关键字用于定义枚举类
枚举类和普通类的区别:
使用enum定义的枚举类默认继承了java.lang.enum类
枚举类的构造器只能使用private访问控制符
枚举类的所有类型必须在枚举类中显式列出(,分隔;结尾)列出的实例系统会自动增加public static final修饰
所有枚举类都提供了一个values方法,该方法可以很方便的遍历所有枚举类
jdk1.5中可以在switch表达式中使用枚举类的对象作为表达式,case子句可以直接使用枚举值的名字,无需添加枚举类作为限定
若枚举类只有一个成员,则可以作为一种单子模式的实现方式
实现接口的枚举类
和普通Java类一样,枚举类可以实现一个或多个接口
若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,则可以让每个枚举值分别来实现该方法
枚举类型的优势
枚举类声明提供了一种用户友好的变量定义方法,枚举类某种数据类型所有可能出现的值,具有
1.类型安全 2.紧凑有效的数据定义 3.可以和程序其他部分完美交互 4.运行效率高