java--方法引數的值傳遞機制
阿新 • • 發佈:2021-01-21
技術標籤:java
java的值傳遞機制
java中方法的引數傳遞的方式只有一種:值傳遞,即將實際引數值的副本傳入方法中,而引數本身不受影響
形參是基本資料型別,將實參基本資料型別變數的“資料值”傳遞給形參
形參是引用資料型別,將實參引用資料型別變數的“地址值”傳遞給形參
交換兩個數的值
/*
java的值傳遞機制,交換兩個數的值
*/
public class ValueTransferTest {
public static void main(String[] args) {
int m=10;
int n=20;
ValueTransferTest transferTest= new ValueTransferTest();
transferTest.swap(m,n);
System.out.println("m = "+m+", n= "+n);
}
public void swap(int m,int n){
int temp=m;
m=n;
n=temp;
}
}
這裡使用基本資料型別,傳遞的是m和n的值的copy,而不是m和n本身,所以當方法執行完之後,方法的形參被銷燬,而main方法裡的m和n還是不變
交換兩個數的值–傳入引用
/**
* 交換兩個數的值,引用傳遞
*/
public class ValueTransferTest2 {
public static void main(String[] args) {
int[] data=new int[]{10,20};
ValueTransferTest2 valueTransferTest2=new ValueTransferTest2();
valueTransferTest2.swap(data);
System.out.println("m = " +data[0]+",n = "+data[1]);
}
public void swap(int[] data){
int temp=data[0];
data[0]=data[1];
data[1]=temp;
}
}
引用型別,傳入的是物件的地址,那麼形參和實參同時指向同一個物件。