什麼是方法重載?
在同一個類中,允許存在一個以上的同名方法,隻要他們的參數個數或者類型不同。
為什麼要使用方法重載?
想要實作同樣的功能,但是傳入方法的資料類型卻跟原來不同。
方法的形參傳遞機制:值傳遞
形參:方法聲明時的參數
實參:方法調用時實際傳給形參的參數
值傳遞機制:
1、如果參數是基本的資料類型,此時實參賦給形參的是實參真實存儲的資料值,複制了一份一樣的資料傳給方法中的形參,形參改變不影響實參
2、如果變量是引用資料類型,此時指派的是變量所儲存的位址值
//參數是基本資料類型
public class test15 {
public static void main(String[] args) {
int m = 10;
int n = 20;
test15 tt = new test15();
//具體執行個體利用方法實作列印輸出m和n交換後的結果
System.out.println("交換前:m= "+m+", n= "+n);
System.out.println();
tt.swap(m,n);
System.out.println("調用交換方法後的實參值:m= "+m+", n= "+n);
}
//參數是基本資料類型
public void swap(int m,int n) {
int temp;
temp = m;
m = n;
n = temp;
System.out.println("參數是基本資料類型-調用交換方法後的形參值:m= "+m+", n= "+n);
System.out.println();
}
}
- 運作結果
記憶體解釋圖:
//參數是引用資料類型
public class test16 {
public static void main(String[] args) {
Data data = new Data();
data.m = 10;
data.n = 20;
System.out.println("交換前:m= "+data.m+", n= "+data.n);
System.out.println();
test16 tt = new test16();
tt.swap(data);
System.out.println("調用交換方法後的實參值:m= "+data.m+", n= "+data.n);
}
// 參數是引用資料類型
public void swap(Data data) {
int temp;
temp = data.m;
data.m = data.n;
data.n = temp;
System.out.println("參數是引用資料類型-調用交換方法後的形參值:m= " + data.m + ", n= " + data.n);
System.out.println();
}
}
class Data{
int m;
int n;
}
- 運作結果
記憶體解釋圖: