Java 重载

Java 重载

java允许一个类中含有多个同名方法,但要求各个同名方法的形参数量或类型或顺序不一致。

调用方法时按照传入的实参调用对应的方法,这就叫重载。

如果同名方法且形参一致,那就不叫重载了,那叫方法重复定义,是会报错的。

重载的案例

在 Java 中 System.out.println() 就采用了重载,使其即能传入多种类型的数据,且打印,如Stringintdoubleboolean.....等类型

重载的作用

  1. 能减少给方法起名和记名的麻烦。
  2. 不用专门为不同形参类型或形参数量而专门再其一个方法名,即:同一个方法名,通过传入的实参匹配对应的方法
  3. Java本身不支持方法默认值,但是我们可以用重载使其达到形参默认值的效果,即:在不传入实参的情况下我们通过重载为其添加默认实参

重载的实际应用

计算器

如果按照普通的方法定义成员方法,那么我们需要定义四个不同名字的方法才能满足我们的计算需求,但是用重载则可以只使用一个方法名,通过传入的不同参数类型自动匹配要调用的方法

public class ...... {
    public static void main (String[] args) {
        Calculator addObj = new Calculator();
        System.out.println(addObj.add(1, 1));
        System.out.println(addObj.add(1, 1.1));
        System.out.println(addObj.add(1.1, 1));
        System.out.println(addObj.add(2.2, 3.3));
    }
}

class Calculator {
    // 加法
    public int add (int num1, int num2) {
        return num1 + num2;
    }
    public double add (int num1, double num2) {
        return num1 + num2;
    }
    public double add (double num1, int num2) {
        return num1 + num2;
    }
    public double add (double num1, double num2) {
        return num1 + num2;
    }    
}

通过重载,我们可以通过传入不同的参数类型,让Java为我们自动调用对应的方法,无需专门为每个方法都其一个名字

形参默认值

形参默认值:即当我们调用方法时,不传递参数,程序会自动帮我们传入我们设置好的默认值。

假如我们现在要定义一个类,记录班里学生姓名,年龄,性别,但是这个班里的学生几乎都是 18 岁,男生据多,如果我们每次调用方法都要传入所有的信息是不是很麻烦,所以形参默认值就派上用场了

public class ...... {
    public static void main (String[] args) {
        Student stuobj = new Student();
        System.out.println("姓名\t年龄\t性别");
        stuobj.stuInfo("张三", (byte)19, '男');
        stuobj.stuInfo("小红", (byte)18, '女');
        stuobj.stuInfo("小明");
        stuobj.stuInfo("李四");
        stuobj.stuInfo("王五");
    }
}

class Student {
    // 打印学生信息
    public void stuInfo (String name, byte age, char gender){
        System.out.println(name + "\t" + age + "\t" + gender);
    }
    // 为方法设置默认值
    public void stuInfo (String name) {
        // 调用原方法,并传入我们要设置的默认值
        stuInfo(name, (byte)18, '男');
    }
}

通过默认值,我们如果不传入年龄与性别,默认年龄性别就为18'男',如果全部所有参数都传入了则按照我们传入的打印。

重载细节注意事项

  1. Java 是通过形参匹配方法的
  2. 同名方法要满足重载条件,一定需要具备 参数类型不一致或参数数量不一致
  3. 如果方法名一致,且参数一致的话为重复定义方法,会报错
  4. 重载对形参名称、形参数量、返回值没有要求,但一定不能出现两个同名方法形参列表一致的情况。
posted @   假文艺青年。  阅读(138)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示