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

© aiheima 中级黑马   /  2016-1-7 00:16  /  680 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Iterator;
import java.util.Random;
                /*
                需求:统计出班里的平均分,假设每个人的分数都不一样,70
                */
public class Demo_GetAvg {

        public static void main(String[] args) {
                Random random = new Random();
                //1 创建集合容器对象
                                ArrayList al = new ArrayList();
                //2 创建元素对象,也就是分数               
                                int score;
                                while(al.size()<70){                                                                //创建70个学生随机的分数
                                        score = random.nextInt(101);
                                        if(!al.contains(score)){
                                                al.add(score);
                                        }
                                }
                               
                                int sum = 0;
                                Iterator it = al.iterator();
                                while(it.hasNext()){
                                        Integer  fenshu = (Integer) it.next();
                                        sum = sum + fenshu;
                                }
                                double avg = new Double(sum).doubleValue()/al.size();
                                System.out.println(al);
                                System.out.println("总分数是"+sum);
                                System.out.println("平均分是"+avg);
        }

}

请问:double avg = new Double(sum).doubleValue()/al.size();   Double接收double类型  sum是integer型 为什么可以传递呢

3 个回复

倒序浏览
1314521ch 来自手机 中级黑马 2016-1-7 00:44:43
沙发
参数数据分为基本类型数据,和引用类型数据,引用类型数据一般传的是对象地址值,有时还涉及到多态 需要向下转型方能调用子类的特有方法……
回复 使用道具 举报
1314521ch 发表于 2016-1-7 00:44
参数数据分为基本类型数据,和引用类型数据,引用类型数据一般传的是对象地址值,有时还涉及到多态 需要向 ...

谢了   今天想了好久 终于想通了
回复 使用道具 举报
楼上回答的真好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马