标题: 求大神解答这个数组函数调用问题。 [打印本页] 作者: 小周务商 时间: 2014-2-25 23:47 标题: 求大神解答这个数组函数调用问题。 //定义一个函数,接收一个int类型的数组,计算该数组元素为偶数的总和。class Test6{
public static void main(String[] args)
{
int[] arr={2,3,5,6,8,12,66};//数组初始化。
int num = he(arr);//调用下面函数:he
System.out.println("偶数总和为:"+num);
}
public static int he(int[] arr2)//这个数组是调用上面数组的数组吗?
{
int num =0;//定义一个变量存储每次偶数相加的和。
for (int i=0;i<arr2.length ;i++ )
{
if (arr2[i]%2==0)//判断是否为偶数。
{
num = num+arr2[i];
}
}
return num;//返回总和。
}
}
有一点我不太明白的就是public static int he(int[] arr2)
arr2是调用上面arr里面的数据来遍历的吗。如果不是。他哪来的数据执行?
int num = he(arr);
这一行的(arr).也是调用上面的arr的数据吗。
求大神解答一下这个程序的执行流程。就这两个地方不太明白。 作者: luoanjade 时间: 2014-2-25 23:54 本帖最后由 luoanjade 于 2014-2-26 00:07 编辑
小生来给你解答: 上面这个类里面定义了一个int类型的he(int[] arr)静态方法,该方法,返回的值是int类型的,也就是数组中偶数的总和。
首先,public static int he(int[] arr){},括号里面的arr只是一个形式参数,你可以写任何一个非关键字的标识。
这个方法表示,它将接受并处理任何一个int类型的数组,并返回一个int类型的结果。
所以,楼主发的程序中: int[] arr={2,3,5,6,8,12,66};//数组初始化。
int num = he(arr);//调用下面函数:he
这两行:第一行,定义了一个int类型的数组arr,并已经初始化;
第二行,将上面定义的数组,传给he(int[])方法处理。这时候he(int[])方法就有了实参arr
这会知道,he(arr)的数据从哪来了吧? 作者: 位俊鹏 时间: 2014-2-26 00:10
回答问题一:arr2是原来定义的那个数组,只不过不用写成int[]arr2的形式,传入int[]arr就行了.
问题二: 作者: 位俊鹏 时间: 2014-2-26 00:12
回答问题一:arr2是原来定义的那个数组,只不过不用写成int[]arr2的形式,传入int[]arr就行了.
问题二: int num = he(arr);也是上面定义的那个数组. 因为方法的参数列表是一个数组,所以把要操作的数组 传入即可.作者: 小周务商 时间: 2014-2-26 00:13
public static int he(int[] arr){},括号里面的arr只是一个形式参数,你可以写任何一个非关键字的标识。
这个方法表示,它将接受并处理任何一个int类型的数组,并返回一个int类型的结果。
那如果我有两个数组在上面呢。他该接受哪一个数组?作者: 平凡成就非凡 时间: 2014-2-26 00:20
int num=he(arr); 其中arr就是你传进去的,传那个调用那个啊作者: chenfc8578 时间: 2014-2-26 00:28
public static int he(int[] arr2)就是在使用上面的数组,因为数组是引用类型的,当执行int num = he(arr);时,就把上面的数组的引用传递给方法中的arr2,因为它们都是int[]类型的。就相当于给上面的数组起了一个名字arr2,但还是你定义的那个数组。