2017年計算機二級考試java章節(jié)輔導(dǎo):傳遞數(shù)組元素到成員方法

字號:


    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)的實參的效果。