5.1.4 傳遞數(shù)組元素到成員方法
數(shù)組元素可以單獨作為變量使用,因此,數(shù)組元素可以像其他普通變量一樣,做為實參傳遞給成員方法供其使用。若數(shù)組元素的數(shù)據(jù)類型是基本數(shù)據(jù)類型,則數(shù)組元素作為成員方法的實參與用普通變量作為實參一樣,都是單向值傳遞,即只能由數(shù)組元素傳遞給形參,程序中隊形參的任何改變不會影響到傳遞給它的數(shù)組元素的值。
如下程序的意圖是將數(shù)組的兩個元素值進行交換,程序如下:
[例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]);
}
}
程序運行結(jié)果為:
交換前實參:
arr[0]=5 arr[1]=8
交換前形參:
a=5 b=8
交換后形參:
a=8 b=5
交換前實參:
arr[0]=5 arr[1]=8
從運行結(jié)果可以看出,傳遞數(shù)組元素arr[0],arr[1]后,其對應(yīng)的形參a,b經(jīng)過swap方法中的計算后,其值發(fā)生了交換,但其交換并未影響到傳遞給它們的實參arr[0]和arr[1]。
這與我們的編程意圖不相符合,那么,能有什么辦法使得對形參的修改影響到傳遞給它的形參嗎?
這里使用的是傳遞數(shù)組元素,我們可以傳遞數(shù)組的名字,這樣就可以實現(xiàn)對形參的修改影響其對應(yīng)的實參的效果。