方法重载

1.什么是方法重载:方法重载(Method Overloading)是 Java 中一项重要的特性,它允许在同一个类里定义多个名字相同但参数列表不同的方法。借助方法重载,能够让代码更加清晰且易于理解。
2.若要实现方法重载,需满足以下条件:

  • 方法名必须一样
  • 方法的参数列表必须不同,这里的不同包括参数的类型、数量或者顺序。
  • 方法的返回类型、访问修饰符以及抛出的异常可以相同,也可以不同,但仅仅这些方面不同是不能构成方法重载的。
    例如:
    public static int max(double num1,double num2){
        int result = 1;//初始化,可以填任意值,不非得填0
        if (num1 == num2){
            System.out.println("num1 == num2");
            return 0; //终止方法
        }
        if (num1 > num2){
            result = (int)num1;
        }else {
            result = (int)num2;
        }
        return result;
    }
}

虽然定义的参数列表值为double,但返回值也可以强制为int。

3.实现理论:方法名相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
4.综合示例:

package com.xxxx.method;

public class Demo03 {
    public static void main(String[] args) {
        double add = add(10, 20.0);
        System.out.println(add); //输出结果:30.0

    }
    public static int add(int a, int b){  //两整数相加
        return a+b;
    }
    public static int add(int a, int b, int c){  //三整数相加
        return a+b+c;
    }
    public static double add(double a, double b){ //两个浮点数相加,强制转换成int类型
        return (int)(a+b);
    }
    //整数与浮点数相加
    public static double add(int a, double b){ //参数里必须有一个是double,不然会报错,声明的返回值类型与实际的返回值类型不匹配。
        return a+b;
    }
    public static double add(double a, int b){ //整数与浮点数相加,但参数顺序不同
        return a+b;
    }
    
}