第二章:簡單 Java 程式解析
第三章:變數與資料型態
第四章:運算子、運算式與敘述
第五章:選擇性敘述與迴圈
第十章:實例變數與函數、類別變數與函數
Powered By GitBook
函數多載
多載 (overloading)
    1.
    函數名稱相同,引數個數不同
    2.
    引數型態不同,引數個數相同
相似功能的函數,以相同的名稱來命名之;透過不同的引數個數,或是不同的型態, 來執行相對應的功能。

一、引數型態不同,引數個數相同

首先在主程式分別宣告不同資料型態的變數a、b、c、d
1
int a=2, b[]={1,2,3};
2
float c=3;
3
double d=3.14;
Copied!
建立四個相同名稱的函數 show,引數個數同為一個,而型態不同
1
public static void show(int i)
2
public static void show(int arr[])
3
public static void show(float i)
4
public static void show(double i)
Copied!
因此當在主程式呼叫函數時,將會執行相對應之型態的函數; 舉例來說:
show(a) ; a 為整數型態 int ,因此將會對應到引數為整數型態的函數
1
public static void show(int i)
Copied!
show(b) ; b為整數型態的陣列,因此對應到引數為陣列整數型態的函數
1
public static void show(int arr[])
Copied!

完整程式碼:

1
public class ch07_9 {
2
3
public static void main(String[] args) {
4
int a=2, b[]={1,2,3};
5
float c=3;
6
double d=3.14;
7
show(a);
8
show(b);
9
show(c);
10
show(d);
11
12
}
13
public static void show(int i){
14
System.out.println("值(a)="+i);
15
}
16
public static void show(int arr[]){
17
System.out.print("值(b)=");
18
for(int i=0;i<arr.length;i++)
19
System.out.print(arr[i]+" ");
20
}
21
public static void show(float i){
22
System.out.println("\n值(c)="+i);
23
}
24
public static void show(double i){
25
System.out.println("值(d)="+i);
26
}
27
28
}
Copied!

二、函數名稱相同,引數個數不同

這次在主程式直接呼叫函數,並設值。
1
show();
2
show(3);
3
show('A',5);
Copied!
在函數的部分,擁有相同名稱卻有不同個數的引數:
1
public static void show( ) //無引數
2
public static void show(int n) //一個引數
3
public static void show(char ch,int n) //兩個引數
Copied!
透過引數個數的不同,對應到應該呼叫的函數

完整程式碼:

1
public class ch07_9_2 {
2
3
public static void main(String[] args) {
4
show();
5
show(3);
6
show('A',5);
7
8
}
9
public static void show(){
10
System.out.println("no");
11
}
12
public static void show(int n){
13
for(int i=0;i<n;i++)
14
System.out.print("*");
15
System.out.println("");
16
}
17
public static void show(char ch,int n){
18
for(int i=0;i<n;i++)
19
System.out.print(ch);
20
}
21
22
}
Copied!
Last modified 1yr ago