黑马程序员技术交流社区
标题:
请问这里的values应该怎么理解 ?
[打印本页]
作者:
刘涛
时间:
2011-11-29 08:52
标题:
请问这里的values应该怎么理解 ?
本帖最后由 刘涛 于 2011-12-1 08:14 编辑
public class Test11
{
public enum StudentGrade{
A,B,C,D,E,F,G
};
public static void main(String[] args)
{
for(StudentGrade score : StudentGrade.values()){
System.out.println("学生成绩取值为"+score);
}
}
}
作者:
强子
时间:
2011-11-29 09:09
public enum Lamp {
S2N("1"), S2W("2");
private String value;
private Lamp(String value){
this.value = value;
}
public String toString(){
return value;
}
}
[code]public static void main(String[] args) {
// TODO Auto-generated method stub
for(Lamp lamp :Lamp.values())
System.out.println(lamp.toString());
}
复制代码
[/code]
测试发现应该是返回枚举内的对象数组
但是在API里面没看见这个方法呢。。。还是没找对地方啊·····
作者:
张冬冬
时间:
2011-11-30 01:45
首先这个一个1.5的新特性,一个增强for循环,也就是for-each
你用的是通过枚举的方法实现了对Map集合中的键进行了遍历,
而后用了一个增强for循环取出了每个键所对应的值。
StudentGrade.values(),就是利用前面枚举出来的键取出对应的值,
从而达到利用学生姓名取出学生成绩的效果。
作者:
wanghongye
时间:
2011-11-30 12:26
StudentGrade.values();就是取出对应的值,应为你前面用的枚举,而不是String,所以需要用values()进行取值。
作者:
韩军博
时间:
2011-11-30 17:59
本帖最后由 韩军博 于 2011-11-30 18:02 编辑
public enum StudentGrade{
A,B,C,D,E,F,G
};
枚举是java5中的特性。
枚举可以理解为这样一个类:1.构造方法是私有的,其他类或方法引用该类时就不能构造出该类的实例对象。
2.自己内部构造出若干的实例对象。这样外部其他的类就只能使用该类自己提供的实例对象。在大型项目中多用在一些常量的定义。有很大的方便。
StudentGrade.values() 就是相当于从该StudentGrade类中获取自己定义的若干实例对象(A,B,C,D,E)。
然后用增强for循环将Values中的每个对象迭代出来赋值给score,从而打印出每个对象。
作者:
刘涛
时间:
2011-12-1 08:20
谢谢你们的回答哈{:soso_e100:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2