我正在学习Java,从我学到的,是你需要指定一个函数返回的值。如果它没有返回一个值,那么它是无效的.. 但是在下面的程序中,我可以从void函数更改数组的值。有人可以向我解释一下吗?
public class ArraysInMethods {
public static void main(String args[]){
int rd[] = {2,3,4,5,6};
change(rd);
for(int y: rd){
System.out.println(y);
}
}
public static void change(int x[]){
for(int counter = 0; counter<x.length;counter++){
x[counter]+=5;
}
}
}
答案 0 :(得分:3)
我学习Java,从我学到的,是你需要指定一个函数返回的值。
这仅适用于返回值的方法,即void
以外的方法。这些方法定义表达式,而void
方法定义语句。
调用change
方法是一种声明,因为它缺少返回值。但是,它并不意味着它无法更改正在运行的程序的状态 - 例如,为变量赋予不同的值。
但是在下面的程序中,我能够从void函数更改数组的值。
您没有从void
函数返回值;你所要做的就是修改阵列。这是允许的,因为数组是通过引用传递的。