6.6.2 枚举类型继承的方法
枚举类型实际上是java.lang.Enum的子类。这意味着枚举类型从java.lang.Enum类中继承了许多有用的方法。主要有:
(1)public final String name():返回此枚举常量的名称。与此方法相比,大多数程序员应该优先考虑使用toString()方法,因为toString()方法返回用户更加友好的名称。
(2)public StringtoString():返回枚举常量的名称,它包含在声明中。可以重写此方法,以便为枚举常量提供更加友好和直观的表示。
(3)public final int ordinal():返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
(4)public final booleanequals(Object other):当指定对象other等于此枚举常量时,返回true。
(5)public final int compareTo(E o):比较此枚举常量与指定对象o的顺序。在该对象小于、等于或大于指定对象o时,分别返回负整数、零或正整数。枚举常量只能与相同枚举类型的其他枚举常量进行比较。
(6)public static EvalueOf(String name):返回带指定名称的指定枚举类型的枚举常量。名称必须与在此类型中声明枚举常量所用的标识符完全匹配(不允许使用额外的空白字符)。其中,name是要返回的常量名称;E是指该枚举类型。该方法是与toString()方法相对应的。
(7)public static E[]values():返回包含该枚举类型所有常量的数组,各枚举常量按定义时的顺序排列,其中E指该枚举类型。
注意:枚举类型是继承java.lang.Enum类的子类。由于Java不支持多重继承,所以,枚举类型不能扩展任何其他类。
【例6-9】 遍历枚举类型的所有枚举常量,输出各枚举常量的序号和名称。
程序执行结果:
0-RED 1-BLUE 2-GREEN
思考与分析:(1)要遍历所有枚举常量,首先要通过Color[]colors=Color.values();语句建立所有枚举常量的数组。values()方法是静态的,所以要类名Color引用该方法。
(2)for(Color c:colors)为增强for语句。相当于for(int i=0,c=colors[i];i<colors.length;i++,c=colors[i]){}。该增强for语句可写成for(Color c:Color.values())。
增强for语句的一般形式是:
for(类型变量名:集合或数组){语句}
模仿例6-9:编程实现遍历枚举类型一个星期七天的所有枚举常量。
下一篇:偏态与峰态的度量