黑马程序员技术交流社区

标题: 参数传递的类型转换 [打印本页]

作者: aiheima    时间: 2016-1-7 00:16
标题: 参数传递的类型转换
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型 为什么可以传递呢

作者: 1314521ch    时间: 2016-1-7 00:44
参数数据分为基本类型数据,和引用类型数据,引用类型数据一般传的是对象地址值,有时还涉及到多态 需要向下转型方能调用子类的特有方法……
作者: aiheima    时间: 2016-1-7 20:14
1314521ch 发表于 2016-1-7 00:44
参数数据分为基本类型数据,和引用类型数据,引用类型数据一般传的是对象地址值,有时还涉及到多态 需要向 ...

谢了   今天想了好久 终于想通了
作者: 胆小的狙击手    时间: 2016-1-7 22:35
楼上回答的真好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2