Java基础-方法重载

方法重载

java允许同一个类中,多个同名方法的存在,但要求的形参列表不一致

  • 使用细节
    1. 方法名:必须相同
    2. 形参列表:必须不同(形参类型或个数或顺序,至少有一样不同,参数名无要求)
    3. 返回类型:无要求

代码示例:

public class OverLoadExercise {
    public static void main(String[] args) {
        Method m = new Method();

        int res1 = m.max(1, 5);
        double res2 = m.max(1.1, 1.8);
        double res3 = m.max(4.2, 5.1, 3.6);
        
        if (res1 != -1) {
            System.out.println("the largest int variable between two variables is " + res1);
        }
        else {
            System.out.println("variables are equal!");
        }
        if (res2 != -1) {
            System.out.println("the largest double variable between two variables is " + res2);
        }
        else {
            System.out.println("variables is equal!");
        }
        if (res3 != -1) {
            System.out.println("the largest double variable between three variables is " + res3);
        }
        else {
            System.out.println("variables is equal!");
        }

        
        double res4 = m.max(4.2, 5.1, 3);

        if (res4 != -1) {
            System.out.println("the largest double variable between three variables is " + res4);
        }
        else {
            System.out.println("variables is equal!");
        }
    }
}

class Method {
    public int max(int a1, int a2) {
        int max;
        if (a1 > a2) {
            max = a1;
            return max;
        }
        else if (a2 > a1) {
            max = a2;
            return max;
        }
        else {
            return -1;
        }
}
public double max(double a1, double a2) {
    double max;
    if (a1 > a2) {
        max = a1;
        return max;
    }
    else if (a2 > a1) {
        max = a2;
        return max;
    }
    else {
        return -1;
    }
}

public double max(double a1, double a2, double a3) {
    double max;
    if (a1 > a2 && a1 > a3) {
        max = a1;
        return max;
    }
    else if (a2 > a1 && a2 > a3) {
        max = a2;
        return max;
    }
    else if (a3 > a1 && a3 > a2) {
        max = a3;
        return max;
    }
    else {
        return -1;
    }
}

public double max(double a1, double a2, int a3) {
    System.out.println("this method running!");
    double max;
    if (a1 > a2 && a1 > a3) {
        max = a1;
        return max;
    }
    else if (a2 > a1 && a2 > a3) {
        max = a2;
        return max;
    }
    else if (a3 > a1 && a3 > a2) {
        max = a3;
        return max;
    }
    else {
        return -1;
    }
}

}

运行示例:

the largest int variable between two variables is 5
the largest double variable between two variables is 1.8
the largest double variable between three variables is 5.1
this method running!
the largest double variable between three variables is 5.1

posted @ 2021-02-26 15:30  Irisx33  阅读(69)  评论(0)    收藏  举报