A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘涛 黑马帝   /  2011-11-29 08:52  /  3346 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘涛 于 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);
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

5 个回复

倒序浏览
强子 黑马帝 2011-11-29 09:09:50
沙发
  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里面没看见这个方法呢。。。还是没找对地方啊·····

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
首先这个一个1.5的新特性,一个增强for循环,也就是for-each
你用的是通过枚举的方法实现了对Map集合中的键进行了遍历,
而后用了一个增强for循环取出了每个键所对应的值。
StudentGrade.values(),就是利用前面枚举出来的键取出对应的值,
从而达到利用学生姓名取出学生成绩的效果。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
StudentGrade.values();就是取出对应的值,应为你前面用的枚举,而不是String,所以需要用values()进行取值。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
本帖最后由 韩军博 于 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,从而打印出每个对象。

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

回复 使用道具 举报
谢谢你们的回答哈{:soso_e100:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马