黑马程序员技术交流社区

标题: 请问这里的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
  1. public enum Lamp {

  2.         S2N("1"), S2W("2");
  3.        
  4.         private String value;
  5.        
  6.         private Lamp(String value){
  7.                 this.value = value;
  8.         }
  9.        
  10.         public String toString(){
  11.                 return value;
  12.         }
  13. }
  14. [code]public static void main(String[] args) {
  15.                 // TODO Auto-generated method stub
  16.                 for(Lamp lamp :Lamp.values())
  17.                 System.out.println(lamp.toString());
  18.         }
复制代码
[/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