一旦枚举对象后面加上{},也即你说的RED、GREEN、YEELON,那么该对象实际是枚举匿名内部类对象;你把枚举理解成一个类的子类有点牵强。举个例子来让你对枚举有更深的了解:
//定义一个肤色的枚举
enum Color{ Green,Blue,Yellow; //这里重写了Enum中的toString()方法返回枚举常量的名称,它包含在声明中。 @Override public String toString() { String ret = super.toString(); switch (this) { case Green: ret = "绿色"; break; case Blue: ret = "蓝色"; break; case Yellow: ret = "黄色"; break; default: break; } return ret; } } class Personp{ Color c = Color.Blue; void show(){ System.out.println(c); } } public class Demo18 { public static void main(String[] args) { Color []color = Color.values();//所有枚举类都提供一个静态的values()方法(返回该枚举类所有对象组成的数组),便于遍历所有枚举对象; for (Color c : color) {//1.5后增强for循环 System.out.println(c); } new Personp().show(); } } 输出: 绿色 蓝色 黄色 蓝色
|