函數的調用-基本數據類型/引用類型

函數的調用-基本數據類型/引用類型

  1. 在Java中,傳參時,都是以傳值的方式進行;
  2. 對於基本數據類型,傳遞的是數據的拷貝;對於引用類型,傳遞的引用的拷貝;

## file 1 ##
class test{
    public static void change(int x,int y){
        x = x + y;
        y = x - y;
        x = x - y;
    }
    public static void changeArr(int[] num){
        num[0] = num[0] + num[1];
        num[1] = num[0] - num[1];
        num[0] = num[0] - num[1];

    }
    public static void changeObj(Obj o){
        o.x = o.x + o.y;
        o.y = o.x - o.y;
        o.x = o.x - o.y;
    }
    public static void main(String[] arg){
        int x = 3;
        int y = 4;
        change(x,y);
        // 基本數據類型,傳遞的是數據的拷貝,就是重新複製了一份;所有不會改變傳遞的參數   
        System.out.println("x="+x+";"+"y="+y);//x=3;y=4

        int num[] = new int[]{3,4};
        changeArr(num);
        // 引用類型,是對引用地址的拷貝,但是引用地址都指向同一個對象;就像是兩把鑰匙
        //對應的兩扇門,鑰匙可以無限複製,但是如果門的位置換了,鑰匙的位置也相當於換了;
        System.out.println("num0="+num[0]+";"+"num1="+num[1]);//num0=4,num1=3

        Obj pt = new Obj();
        pt.x = 3;
        pt.y = 4;
        changeObj(pt);
        System.out.println("ptx="+pt.x+";"+"pty="+pt.y);//ptx==4,pty=3
    }
}
## file 2 ##
class Obj{
    int x;
    int y;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章