更新時(shí)間:2019-07-18 來源:黑馬程序員 瀏覽量:
在Java中,同一個(gè)類中的多個(gè)方法可以有相同的方法名稱,但是有不同的參數(shù)列表,這就稱為方法重載(method
overloading)。假設(shè)要在程序中實(shí)現(xiàn)一個(gè)對(duì)數(shù)字求和的方法,由于參與求和數(shù)字的個(gè)數(shù)和類型都不確定,因此要針對(duì)不同的情況去設(shè)計(jì)不同的方法。接下來通過一個(gè)案例來實(shí)現(xiàn)對(duì)兩個(gè)整數(shù)相加、對(duì)三個(gè)整數(shù)相加以及對(duì)兩個(gè)小數(shù)相加的功能。
public class Example1 { public static void main (String[] args) { //下面是針對(duì)求和方法的調(diào)用 int suml = add01 (1, 2); int sum2 = add02 (1, 2, 3); double sum3 = add03 (1.2, 2.3); //下面的代碼是打印求和的結(jié)果 System.out.println ("sum1="+ sum1); System.out.println ("sum2="+ sum2); System.out.println ("sum3="+ sum3); } //下面的方法實(shí)現(xiàn)了兩個(gè)整數(shù)相加 public static int add01 (int x, int y) { return x+y; } //下面的方法實(shí)現(xiàn)了三個(gè)整數(shù)相加 public static int add02 (int x, int y, int z) { return x+y+z; } //下面的方法實(shí)現(xiàn)了兩個(gè)小數(shù)相加 public static double add03 (double x, double y) { return x+y; } }
運(yùn)行結(jié)果為:
sum1= 3
sum2=6
sum3=3.5
從上面的代碼不難看出,程序需要針對(duì)每一種求和的情況都定義一個(gè)方法,如果每個(gè)方法的名稱都不相同,在調(diào)用時(shí)就很難分清哪種情況該調(diào)用哪個(gè)方法。為這個(gè)問題,Java允許在一個(gè)程序中定義多個(gè)名稱相同的方法,但是參數(shù)的類型或個(gè)數(shù)必須不同,這就是方法的重載。接下來通過方法重載的方式,修改Example1.java,下面看案例Example2.java。
public static public static void main(String[] args){ //下面是針對(duì)求和方法的調(diào)用 int suml = add(1, 2); int sum2 = add(1, 2, 3); double sum3=add(1.2,2.3); //下面的代碼是打印求和的結(jié)果 System.out.println("sum1-"+sum1); System.out.println("aum2-"+sum2); System.out.println("sum3="+sum3); } //下面的方法實(shí)現(xiàn)了兩個(gè)整數(shù)相加 public static int add (int x, int y){ return x+y; } //下面的方法實(shí)現(xiàn)了三個(gè)整數(shù)相加 public static int add (int x, int y, int z){ return x+y+z; } //下面的方法實(shí)現(xiàn)了兩個(gè)小數(shù)相加 public static double add (double x, double y){ return x+y; } }
Example2.java的運(yùn)行結(jié)果與Example2.java相同。Example2.java中定義了三個(gè)同名的add()方法,它們的參數(shù)個(gè)數(shù)或類型不同,從而形成了方法的重載。在main()方法中調(diào)用add()方法時(shí),通過傳入不同的參數(shù)便可以確定調(diào)用哪個(gè)重載的方法,如add(1,2)調(diào)用的是兩個(gè)整數(shù)求和的方法。值得注意的是,方法的重載與返回值類型無關(guān),它只需要滿足兩個(gè)條件,一是方法名相同,二是參數(shù)個(gè)數(shù)或參數(shù)類型不相同。
推薦了解熱門學(xué)科