方法的引數值傳遞機制
阿新 • • 發佈:2018-12-15
方法的引數傳遞(重難點)
1.形參:方法宣告時的引數(方法聲明裡小括號中的引數)
實參:呼叫方法時,實際傳入的引數的值
2.規則:Java中的引數傳遞機制:值傳遞機制
(1)形參是基本資料型別:將實參的值傳遞給形參的基本資料型別的變數
public class TestArgsTransfer { public static void main(String[] args) { TestArgsTransfer tt=new TestArgsTransfer(); int i=20; int j=5; System.out.println("i:"+i+"j:"+j); //交換變數i和j的值 /*int temp=i; i=j; j=temp; System.out.println("i:"+j+"j:"+j);和下面的方法功能一樣*/ tt.swap(i,j);//將i的值傳遞給m,j的值傳遞給n System.out.println("i:"+i+"j:"+j); } //定義一個方法,交換兩個變數的值 public void swap(int m,int n){ int temp=m; m=n; n=temp; } }
本身應該輸出的程式碼是i和j交換值的,但是因為i賦值給m,j賦值給n,輸出的卻依然是i和j,所以值還是不變
(2)形參是引用資料型別:將實參的引用型別變數的值(對應的堆空間的物件實體的首地址)傳遞形參的引用型別變數
public class TestArgsTransfer { public static void main(String[] args) { TestArgsTransfer tt=new TestArgsTransfer(); DataSwap ds=new DataSwap(); System.out.println("ds.i:"+ds.i+"ds.j:"+ds.j); tt.swap(ds); System.out.println("ds.i:"+ds.i+"ds.j:"+ds.j); } //交換元素的值 public void swap(DataSwap d){ int temp=d.i; d.i=d.j; d.j=temp; } } class DataSwap{ int i=10; int j=5; }