【Java方法笔记】3-2 方法的重载

§3-2 方法的重载

方法的重载:在一个类中,有相同的函数名称,但形式参数不同的函数。

方法的重载允许我们在一个类中同时含有多个名称相同的方法。

3-2.1 重载规则与实现理论

方法重载的规则:

  • 方法名称相同;
  • 参数列表必须不同(个数、类型或参数排列顺序不同);
  • 方法的返回类型可相同也可不同;
  • 仅仅返回类型不同不足以成为方法的重载。

方法重载的实现理论:方法名称相同时,编译器会根据调用方法的参数个数、参数类型等逐个匹配,以选择对应的方法。若匹配失败,则编译器报错。

通过这一点,可以间接实现 Java 方法中的参数默认值。(另一种方法可以在为方法传入空参数时,为参数赋值为常量)

3-2.2 实践

以上一节比大小的方法为例,在此基础上我们将其复制粘贴,但做出部分改动,见下:

public class Compare {
    public static void main(String[] args) {
        //比大小
        int a = max(1,2);   //调用第一个方法
        double b = max(1.25,2.50);    //调用第二个方法
        int c = max(2,1,5);     //调用第三个方法

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }

    public static int max(int a, int b) {
        int result = -1;

        if (a == b) {
            System.out.println("Equal");
            return 0;   //终止方法
        }
        if (a < b) {
            result = b;
        } else {
            result = a;
        }
        //返回值必须写在方法体最后
        return result;
    }

    //双精度浮点数作比
    public static double max(double a, double b) {
        double result = -1;

        if (a == b) {
            System.out.println("Equal");
            return 0;   //终止方法
        }
        if (a < b) {
            result = b;
        } else {
            result = a;
        }
        //返回值必须写在方法体最后
        return result;
    }
    
    //三数作比
    public static int max(int a, int b,int c) {
        int result = -1;

        if (a == b && b == c) {
            System.out.println("Equal.");
            result = a;
        } else if (a > b && b > c){
            result = a;
        } else if (a > b && b == c) {
            result = a;
        } else if (b > a && a == c) {
            result = b;
        } else if (b > a && a > c) {
            result = b;
        } else if (c > a && c == b) {
            result = c;
        } else if (c > a && c > b) {
            result = c;
        }
        //返回值必须写在方法体最后
        return result;
    }
}

编译后运行,得结果如图:

image

posted @ 2021-07-25 23:27  Zebt  阅读(71)  评论(0)    收藏  举报