以下是一哥们说的:
在某些情况下,一个类的对象是有限而且固定的,例如只有四个对象的季节类,只有九个对象的行星类,这种实例有限且固定的类,在JAVA里面,我们称其为枚举类。
当我们需要手动实现枚举类时,可以采用以下的设计方式:
通过private将构造器隐藏起来。
把这个类的所有可能实现的实例都用public staic final属性来保存
如果有必要,可以提供一些静态方法,允许其他程序根据特定参数来获取与之匹配实例。
在J2SE1.5之后,新增了一个enmu关键字,用以定义枚举类,它与普通类有以下区别:
枚举类可以实现一个或多个接口,使用enmu定义的枚举类默认继承了java.lang.Enum类,而不是继承Object类,其中java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable两个接口
枚举类的构造器只能使用private访问控制符,如果省略了其构造器的访问控制符,则默认使用private修饰;如果强制指定访问控制符,则只能指定private作为控制符。
枚举类的所有实例必须在枚举类中显示列出,否则这个枚举类将永远都不能产生实例。列出这些实例时,系统会自动添加public static final修饰无需程序员显示添加。
所有的枚举类都提供了一个values方法,该方法可以很方便的遍历所有的枚举值.
|