Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java 方法重載

在本文中,您將了解方法重載以及如何借助示例在Java中實現(xiàn)重載。

在Java中,如果兩個或多個方法的參數(shù)不同(不同數(shù)量的參數(shù),不同類型的參數(shù)或兩者都不同),則它們可以具有相同的名稱。這些方法稱為重載方法,此功能稱為方法重載。例如:

void func() { ... }
void func(int a) { ... }
float func(double a) { ... }
float func(int a, float b) { ... }

在這里,func()方法是重載的。這些方法具有相同的名稱,但是接受不同的參數(shù)。

請注意,這些方法的返回類型不同。 重載方法可以具有不同的返回類型,也可以不具有不同的返回類型,但它們接受的參數(shù)必須不同。

為什么方法重載?

假設您必須執(zhí)行給定數(shù)字的加法運算,但是可以有任意數(shù)量的參數(shù)(為簡單起見,可以說2個或3個參數(shù))。

為了完成任務,可以分別為兩個和三個參數(shù)創(chuàng)建兩個方法sum2num(int,int)和sum3num(int,int,int)。但是,其他程序員以及您將來可能會感到困惑,因為這兩種方法的行為相同,但名稱不同。

完成此任務的更好方法是重載方法。并且,根據(jù)傳遞的參數(shù),調(diào)用其中一個重載方法。這有助于提高程序的可讀性。

如何在Java中執(zhí)行方法重載?

以下是執(zhí)行方法重載的不同方法:

1.通過更改參數(shù)數(shù)量來重載

class MethodOverloading {
    private static void display(int a){
        System.out.println("參數(shù): " + a);
    }

    private static void display(int a, int b){
        System.out.println("參數(shù): " + a + " 和 " + b);
    }

    public static void main(String[] args) {
        display(1);
        display(1, 4);
    }
}

輸出

參數(shù): 1
參數(shù): 1 和 4

2.通過更改參數(shù)的數(shù)據(jù)類型

class MethodOverloading {

    //此方法接受int
    private static void display(int a){
        System.out.println("得到了整數(shù)數(shù)據(jù).");
    }

    //此方法接受String對象
    private static void display(String a){
        System.out.println("得到了String對象。");
    }

    public static void main(String[] args) {
        display(1);
        display("Hello");
    }
}

輸出

得到了整數(shù)數(shù)據(jù)
得到了String對象。

在這里,兩個重載方法都接受一個參數(shù)。但是,一個接受int類型的參數(shù),而另一個接受String對象。

讓我們看一個真實的實例:

class HelperService {

    private String formatNumber(int value) {
        return String.format("%d", value);
    }

    private String formatNumber(double value) {
        return String.format("%.3f", value);
    }

    private String formatNumber(String value) {
        return String.format("%.2f", Double.parseDouble(value));
    }

    public static void main(String[] args) {
        HelperService hs = new HelperService();
        System.out.println(hs.formatNumber(500));
        System.out.println(hs.formatNumber(89.9934));
        System.out.println(hs.formatNumber("550"));
    }
}

運行該程序時,輸出為:

500
89.993
550.00

注意:在Java中,您還可以用類似于方法的方式重載構(gòu)造函數(shù)。

推薦相關: Java構(gòu)造函數(shù)重載

注意事項

  • 如果兩個或多個方法接受不同的參數(shù),則它們在同一個類中可以具有相同的名稱。 此功能稱為方法重載。

  • 方法重載可以通過以下任一方式實現(xiàn):

    • 更改參數(shù)數(shù)量。

    • 或更改參數(shù)的數(shù)據(jù)類型。

  • 不能通過只更改方法的返回類型來實現(xiàn)方法重載。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清