我想将数组作为参数从main传递给子类。但看起来它没有初始化。请看下面的建议我错了。 在此先感谢
class arraymain{
public static void main(String[] arg){
Array obj=new Array();
obj.passArray(new int[]{1,2,3,4,5},4);
}
}
class Array{
void passArray(int[] values,int size){
values=new int[size];
for (int num=0;num<values.length;num++){
System.out.println(values[num]);
}
}
}
OUPTPUT:
0
0
0
0
答案 0 :(得分:4)
values=new int[size];
您正在初始化一个新数组,覆盖传递的参数。
以这种方式创建新数组时,所有值都使用其默认值进行初始化,对于int
,这恰好为0。
只需删除此行,代码就可以按预期工作。
并且,正如评论指出的那样,这使得参数size
未被使用。数组的 length 直接来自数组,正如您在代码中所做的那样。
答案 1 :(得分:2)
您需要从values=new int[size];
课程中删除Array
。
您正在获取values
作为参数,然后您正在执行此操作values=new int[size];
,这将创建一个新数组,并且此新数组没有值(默认值为0)。
答案 2 :(得分:1)
问题在于
行values=new int[size]
您正在创建一个 new 数组,因此您隐藏了一个非0值的数组。