java之方法重載


原因:

看一下這個例子

 1 public class MethodDemo02 {
 2     public static void main(String[] args) {
 3         // 下面是針對求和方法的調用
 4         int sum1 = add01(1, 2);
 5         int sum2 = add02(1, 2, 3);
 6         double sum3 = add03(1.2, 2.3);
 7         // 下面的代碼是打印求和的結果
 8         System.out.println("sum1=" + sum1);
 9         System.out.println("sum2=" + sum2);
10         System.out.println("sum3=" + sum3);
11     }
12 
13     // 下面的方法實現了兩個整數相加
14     public static int add01(int x, int y) {
15         return x + y;
16 }
17     // 下面的方法實現了三個整數相加
18     public static int add02(int x, int y, int z) {
19         return x + y + z;
20     }
21     // 下面的方法實現了兩個小數相加
22     public static double add03(double x, double y) {
23         return x + y;
24     }
25 }

從上述代碼不難看出,程序需要針對每一種求和的情況都定義一個方法,如果每個方法的名稱都不相同,在調用時就很難分清哪種情況該調用哪個方法。

為了解決這個問題,Java允許在一個類中定義多個名稱相同的方法,但是參數的類型或個數必須不同,這就是方法的重載

接下來通過方法重載的方式進行修改,如下所示。MethodDemo03.java

 1 public class MethodDemo03 {
 2     public static void main(String[] args) {
 3         // 下面是針對求和方法的調用
 4         int sum1 = add(1, 2);
 5         int sum2 = add(1, 2, 3);
 6         double sum3 = add(1.2, 2.3);
 7         // 下面的代碼是打印求和的結果
 8         System.out.println("sum1=" + sum1);
 9         System.out.println("sum2=" + sum2);
10         System.out.println("sum3=" + sum3);
11     }
12 
13     // 下面的方法實現了兩個整數相加
14     public static int add(int x, int y) {
15         return x + y;
16     }
17     // 下面的方法實現了三個整數相加
18 public static int add(int x, int y, int z) {
19         return x + y + z;
20     }
21     // 下面的方法實現了兩個小數相加
22     public static double add(double x, double y) {
23         return x + y;
24     }
25 }

 

上述代碼中定義了三個同名的add()方法,它們的參數個數或類型不同,從而形成了方法的重載。在main()方法中調用add()方法時,通過傳入不同的參數便可以確定調用哪個重載的方法。

注意事項;

1. 重載方法參數必須不同:

參數個數不同,如method(int x)與method(int x,int y)不同

參數類型不同,如method(int x)與method(double x)不同g

參數順序不同,如method(int x,double y)與method(double x,int y)不同

2.  重載只與方法名與參數類型相關與返回值無關

如void method(int x)與int method(int y)不是方法重載,不能同時存在

3. 重載與具體的變量標識符無關

如method(int x)與method(int y)不是方法重載,不能同時存在

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM