12-面向对象-方法重载(OverLoad)

基本介绍

重载(Overload):指一个类中可以有多个方法具有相同的名字,但这些方法的参数不同(参数的类型和个数不同)

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

public class OverLoad01 {
    public static void main(String[] args){

        MyCalculator mc = new MyCalculator();
        System.out.println(mc.calculate(1,2));      //3
        System.out.println(mc.calculate(1.1,2));    //3.1
        System.out.println(mc.calculate(1,2.2));    //3.2
        System.out.println(mc.calculate(1,2,3));    //6
    }
}

class MyCalculator{
    //以下四个 calculate方法 构成了重载
    //两个整数的和
    public int calculate(int n1, int n2){
        return n1 + n2;
    }
    //一个整数,一个double的和
    public double calculate(int n1, double n2){
        return n1 + n2;
    }
    //一个double,一个Int的和
    public double calculate(double n1, int n2){
        return n1 + n2;
    }
    //三个Int的和
    public int calculate(int n1, int n2, int n3){
        return n1 + n2 + n3;
    }
}

方法重载的注意事项和使用细节

方法名:必须相同

参数列表:必须不同(形参类型或个数或顺序,至少有一样不同,参数名无要求)

返回类型:无要求

构成重载的两个方法,必须在同一个作用域中。

 

练习题1. 编写程序,类 Method 中定义三个重载方法并调用,方法名为 m三个方法分别接收 一个int参数、两个int参数、一个字符串参数。三个重载方法分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。需要在主类的main()方法中分别用参数区别调用三个方法。

public class OverLoadExercise01 {
    public static void main(String[] args){

        Method method = new Method();
        method.m(10);
        method.m(10,20);
        method.m("马铃薯");
    }
}

class Method{
    public void m(int n){
        System.out.println("平方 = " + Math.pow(n,2));
    }
    public void m(int n1, int n2){
        System.out.println("相乘 = " + (n1 * n2));
    }
    public void m(String str){
        System.out.println("字符串 = " + str);
    }
}

 

posted @ 2023-08-03 11:46  马铃薯1  阅读(35)  评论(0编辑  收藏  举报