[关闭]
@liayun 2016-06-24T15:32:19.000000Z 字数 3258 阅读 1486

枚举

java基础加强


为什么要有枚举

一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前采用自定义带有枚举功能的类解决,JDK5以后可以直接使用枚举予以解决。JDK5新增的enum关键字用于定义一个枚举类
问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0;或即使使用常量方式也无法阻止意外。
枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。

普通类如何实现枚举功能

定义一个Weekday的类来模拟枚举功能。

枚举的基本应用

如果想在一个类中编写完各个枚举类和测试调用类,那么可以将枚举类定义成调用类的内部类。

总结:枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象,例如可以调用WeekDay.SUN.getClass().getNameWeekDay.class.getName()

枚举的高级应用

带构造方法的枚举

带抽象方法的枚举

注意:枚举只有一个成员时,就可以作为一种单例的实现方式。代码如下:

  1. public enum Character { // class
  2. A; // Object
  3. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注