黑马程序员技术交流社区

标题: overload 中的可以变参数问题 [打印本页]

作者: java—family    时间: 2014-7-17 11:31
标题: overload 中的可以变参数问题
public class VariableParamenter {
        public static void main(String[] args) {
                System.out.println(add(2,3));
                System.out.println(add(2,3,4));
                System.out.println(add(2,3,5));
               
        }
   public static int add(int x,int... args){
          
           int sum =0;//int sum = x;
           for(int i=0;i<args.length;i++){
                  sum=sum+args[i];
           }
          
           return sum;
   }
}
初始化sum的时候  sum写0为什么 不对   正确的要写sum=x;  我不知道为什么
作者: lancerjs    时间: 2014-7-17 11:34
写0的话x就没被加到sum中去
作者: 人心如水    时间: 2014-7-17 11:35
你传入的参数是X  你add方法里不写sum = X   你都不知道传给谁啊。。。。。你写sum=0,你找找代码里有x吗?add(2,3)你2传给谁?
作者: java—family    时间: 2014-7-17 11:40
人心如水 发表于 2014-7-17 11:35
你传入的参数是X  你add方法里不写sum = X   你都不知道传给谁啊。。。。。你写sum=0,你找找代码里有x吗? ...

args[]是数组  我遍历的时候没有把第一个 x=2 遍历进去吗?

还是 args不含第一个

作者: 人心如水    时间: 2014-7-17 11:43
java—family 发表于 2014-7-17 11:40
args[]是数组  我遍历的时候没有把第一个 x=2 遍历进去吗?

还是 args不含第一个

你传了,但是方法里没东西接受啊。跟没传不一样啊,
作者: java—family    时间: 2014-7-17 11:43
java—family 发表于 2014-7-17 11:40
args[]是数组  我遍历的时候没有把第一个 x=2 遍历进去吗?

还是 args不含第一个

我的理解是    for遍历 add(int x,int。。。args)
把add里面的内容遍历相加   个sum   这样理解不对



作者: java—family    时间: 2014-7-17 11:47
人心如水 发表于 2014-7-17 11:43
你传了,但是方法里没东西接受啊。跟没传不一样啊,

如我把sum初始化为x;那么当我的i=0是  
sum=sum+args【0】
这个值时多少
作者: IT初学者    时间: 2014-7-17 11:52
这个你写的args是一个数组,可是你在传参数是add(2,3)这个2.3中是两个整数,哪来的数组???
作者: Beka    时间: 2014-7-17 12:15
public static int add(int x,int... args)  你把这里的int x 去掉试试。




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