首页 理论教育 枚举类型继承的方法

枚举类型继承的方法

时间:2022-02-28 理论教育 版权反馈
【摘要】:枚举类型实际上是java.lang.Enum的子类。这意味着枚举类型从java.lang.Enum类中继承了许多有用的方法。枚举常量只能与相同枚举类型的其他枚举常量进行比较。其中,name是要返回的常量名称;E是指该枚举类型。public static E[]values():返回包含该枚举类型所有常量的数组,各枚举常量按定义时的顺序排列,其中E指该枚举类型。由于Java不支持多重继承,所以,枚举类型不能扩展任何其他类。

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】 遍历枚举类型的所有枚举常量,输出各枚举常量的序号和名称。

img399

程序执行结果:

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:编程实现遍历枚举类型一个星期七天的所有枚举常量。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈