5.1.4 传递数组元素到成员方法
数组元素可以单独作为变量使用,因此,数组元素可以像其他普通变量一样,做为实参传递给成员方法供其使用。若数组元素的数据类型是基本数据类型,则数组元素作为成员方法的实参与用普通变量作为实参一样,都是单向值传递,即只能由数组元素传递给形参,程序中队形参的任何改变不会影响到传递给它的数组元素的值。
如下程序的意图是将数组的两个元素值进行交换,程序如下:
[例5-3]
class Change{
public void swap(int a,int b){
System.out.println("交换前形参:\n a="+a+" b="+b);
int temp;
temp=a;
a=b;
b=temp;
System.out.println("交换后形参:\n a="+a+" b="+b);
}
}
public class Test5_3 {
public static void main(String[] args) {
int[] arr={5,8};
Change c = new Change();
System.out.println("交换前实参:\n arr[0]="+arr[0]+" arr[1]="+arr[1]);
c.swap(arr[0], arr[1]);
System.out.println("交换前实参:\n arr[0]="+arr[0]+" arr[1]="+arr[1]);
}
}
程序运行结果为:
交换前实参:
arr[0]=5 arr[1]=8
交换前形参:
a=5 b=8
交换后形参:
a=8 b=5
交换前实参:
arr[0]=5 arr[1]=8
从运行结果可以看出,传递数组元素arr[0],arr[1]后,其对应的形参a,b经过swap方法中的计算后,其值发生了交换,但其交换并未影响到传递给它们的实参arr[0]和arr[1]。
这与我们的编程意图不相符合,那么,能有什么办法使得对形参的修改影响到传递给它的形参吗?
这里使用的是传递数组元素,我们可以传递数组的名字,这样就可以实现对形参的修改影响其对应的实参的效果。
2017年计算机二级考试java章节辅导:传递数组元素到成员方法.doc