黑马程序员技术交流社区
标题:
关于枚举的
[打印本页]
作者:
邱成
时间:
2012-9-11 23:30
标题:
关于枚举的
本帖最后由 邱成 于 2012-9-12 07:40 编辑
//以下是一段关于枚举的 问题:
enum CupShop {
cup1("num1"), cup2("num2"), cup3("num3");
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
private CupShop(String name) {
this.setName(name);
}
}
public class Cup {
public static void main(String args[]) {
for (CupShop c : CupShop.values()) {
System.out.println(c.ordinal() + c.name() + c.getName());
}
}
}
在上述代码中的cup1("num1"),cup2("num2"),cup3("num3");括号里的“num1""num2""num3"代表什么思?cup1,cup2,cup3又代表什么意思?
在这段代码中是怎样为属性赋值的?使用c.getName为什么可以取得cup1("num1"),cup2("num2"),cup3("num3")中括号里的字符串?
作者:
杨习平
时间:
2012-9-11 23:44
enum CupShop {
cup1("num1"), cup2("num2"), cup3("num3");
一看就知道是枚举。它定义的cup1("num1"), cup2("num2"), cup3("num3");
这些事固定的值。不能改变的,他们相当于是这个枚举的一个个对象,括号中的是对应的参数
,这样可以再调用某个枚举时就可以访问到他。
cup1("num1"), cup2("num2"), cup3("num3");它里面就已经有数值了。他就是一个对象。
包括值都在,只要你用set或get方法就可以得到他们或得到相应的值。
作者:
吴刚
时间:
2012-9-11 23:57
先说枚举的定义:将变量的值一一列举出来,变量的值只限于列举出来的值的范围内,也就是说代码中的cup1("num1"),cup2("num2"),cup3("num3")就是该Cupshop类的所有取值;num1""num2""num3"可以理解为它的构造函数传入的实际参数,形参是String name,私有化其String name,有利于程序的安全性,然后通过setName设置传入的实参,通过getName获得name,这种方式在以后的实际开发中也会经常遇到,eclipse通常会帮忙自动书写,主函数里面的代码是通过增强的for循环,楼主可以这样理解,调用CupShop的静态方法values(),将取得的数据赋值给CupShop的子类c,然后继续下一次循环,其中ordinal()方法是Enum类中的特有方法,返回他的序列号(从0开始的),getName是它的自带方法。getName函数的方法体中的返回值就是name,隐式的书写方式就是this.name,楼主这样看明白没有,哎,苦逼的程序员,休息吧╮(╯▽╰)╭
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2