声明:本博客为原创博客。未经同意。不得转载!原文链接为http://blog.csdn.net/bettarwang/article/details/27262809.
从Java 5開始有了枚举类,须要注意的是enum定义的类默认继承的是java.lang.Enum类而不是Object类。
同一时候注意枚举类不能派生子类(类的默认修饰符为final)。其原因基于它仅仅有private构造器。那为什么要设计成这样呢?
事实上非常easy想明确,所谓枚举类就是有包括有固定数量实例(而且实例的值也固定)的特殊类,假设其含有public构造器,那么在类的外部就能够通过这个构造器来新建实例,显然这时实例的数量和值就不固定了,这与定义枚举类的初衷相矛盾,为了避免这样的形象。就对枚举类的构造器默认使用private修饰。假设为枚举类的构造器显式指定其他訪问控制符,则会编译出错。
另外。注意枚举类的全部实例必须在其首行显式列出,否则它不能产生实例。
例如以下是一个使用枚举类的经典演示样例:
import java.util.*; enum Planet { MERCURY,VENUS,EARTH,MARS,JUPITER,SATURN,URANUS,NEPTUNE } public class EnumSample { public void flyTo(Planet planet) { String destination=""; switch(planet) { case MERCURY: destination="水星"; break; case VENUS: destination="金星"; break; case EARTH: destination="地球"; break; case MARS: destination="火星"; break; case JUPITER: destination="木星"; break; case SATURN: destination="土星"; break; case URANUS: destination="天王星"; break; case NEPTUNE: destination="海王星"; break; } System.out.println("The destination is "+destination); } public static void main(String[]args) { EnumSample sample=new EnumSample(); sample.flyTo(Planet.NEPTUNE); } }