[Javaメソッド学習]メソッドのオーバーロード

メソッドのオーバーロード

オーバーロードは、関数名は同じですが、クラス内の仮パラメーターが異なる関数です。

下面三个方法名字都相同为max(),但是参数类型不同
//比大小,两个整数
public static double max(double num1,double num2) {
    
    
    //修饰符 修饰符 返回值类型 名字
    double result = 0;
    if (num1 == num2) {
    
    
        System.out.println("num1=num2");
        return 0;
    }
    if(num1>num2){
    
    
        result = num1;
    }else {
    
    
        result =num2;
    }
    return result;
}
//比大小,两个浮点数
public static int max(int num1,int num2){
    
    
    //修饰符 修饰符 返回值类型 名字
    int result=0;
    if(num1==num2){
    
    
        System.out.println("num1=num2");
        return 0;
        /*return还可以用来结束方法,如果相等会输出两行:
        num1=num2
        0
         */
    }
    if(num1>num2){
    
    
         result = num1;
    }else {
    
    
         result =num2;
    }

    return result;//return一般写在方法最下面
}
//比大小,三个数
public static int max(int num1,int num2,int num3){
    
    
    //修饰符 修饰符 返回值类型 名字
    int result=0;
    if(num1==num2){
    
    
        System.out.println("num1=num2");
        return 0;
        /*return还可以用来结束方法,如果相等会输出两行:
        num1=num2
        0
         */
    }
    if(num1>num2){
    
    
        result = num1;
    }else {
    
    
        result =num2;
    }

    return result;//return一般写在方法最下面
}

メソッドのオーバーロードのルール:

1 **。メソッド名は同じである必要があります**。上記のように

2 **。パラメータリストは異なる必要があります**(番号が異なる、タイプが異なる、パラメータの順序が異なるなど)。上記のように

3.メソッドの戻り値の型は同じでも異なっていてもかまいません。上記のように

4.異なる戻り値の型だけでは、メソッドのオーバーロードには不十分です。上記のように

実現理論:

メソッド名が同じ場合、コンパイラは呼び出し元のメソッドのパラメータ数とパラメータタイプに応じて1つずつ照合し、対応するメソッドを選択します。照合に失敗した場合、コンパイラはエラーを報告します。

おすすめ

転載: blog.csdn.net/weixin_44302662/article/details/114648704