<b>顺服Tiger: 深化研究摆列典范</b>[Java编程]
本文“<b>顺服Tiger: 深化研究摆列典范</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
底子知识
正如 Brett McLaughlin 在他的文章“列举范例入门”中所描写的那样(举荐您先阅读这篇文章),通过利用新的 enum 关键字成立指定的对象调集,您可以成立一个列举范例.然后,可以将每个指定的值看做是那个类的一个实例,这为您供应了指定的整数调集所无法供应的编译时范例安全.清单 1 将成立一个列举范例,并将范例安全的列举值作为帮忙器办法(helper method)的参数.该列举范例的 values() 办法返回这种范例的差别值的有序数组.
清单 1. 列举范例的例子
public class Loop {
enum Size {
Small,
Medium,
Large
}
public static void main(String args[]) {
for (Size s : Size.values()) {
helper(s);
}
}
private static void helper(Size s) {
System.out.println("Size value: " + s);
}
}
构造函数、办法和变量
在利用 enum 关键字成立新的列举范例时,实际上是在成立 java.lang.Enum 类的子类,此中,列举范例符合通用情势 Class Enum<E extends Enum<E>>,而 E 表示列举范例的名称.列举范例的每一个值都将映射到 protected Enum(String name, int ordinal) 构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了每个设置的优先值.换句话说,enum Size {Small, Medium, Large} 将映射到清单 2 中所示的构造函数调用中:
清单 2. 映射的构造函数调用
new Enum<Size>("Small", 0);
new Enum<Size>("Medium", 1);
new Enum<Size>("Large", 2);
不必将构造函数的利用限制为间接 Enum 构造函数调用.在利用 enum 关键字时,将成立 Enum 的子类.您可以利用参数和任何别的东西为定义的每个名称增添一些您自己的构造函数调用.名称声明可以看做是对构造函数的调用,您没必要增添 new 关键字.这种办法答应您将数据作为参数值传送给构造函数调用,如清单 3 所示.该参数表示 Size 对象的列举调集的定价因子.位于列举范例定义之后的 main() 办法演示了这种用法.
清单 3. 定制构造函数的例子
public class Sample {
enum Size {
Small(0.8),
Medium(1.0),
Large(1.2);
double pricingFactor;
Size(double p) {
pricingFactor = p;
}
}
public static void main(String args[]) {
Size s = Size.Large;
double d = s.pricingFactor;
System.out.println(s + " Size has pricing factor of " + d);
}
}
以上是“<b>顺服Tiger: 深化研究摆列典范</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |