java中方法重载

方法重载(OverLoad):

方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。

参数列表:个数不同,数据类型不同,顺序不同。

重载方法调用:JVM通过方法的参数列表,调用不同的方法。

优势:用一个方法名可以实现多个不同参数被传递的方法调用,但是参数类型相同的参数个数与方法的参数个数不匹配时就会报错。

/*
* 1.方法重载:在同一个类中定义多个方法名相同且参数个数不同的方法的过程。
* 2.方法重载调用:根据传入的参数个数调用相同参数个数的方法(自动匹配参数相同的方法,匹配不到的话就会报错)。
* 3.参数类型不同或参数类型的顺序不同,即使参数个数相同,也不会报错。
* 4.定义两个以上只是参数名称不同的方法,也是会报错,即不能重载。
* 最后总结:方法重载调用相对应的方法,是根据传入参数的个数、参数类型、参数顺序决定的,与参数名称、返回值的类型、修饰符无关。
* */
package cn.kuhai.www;
public class Overload {
    public static void main(String[] args){
        //2-1-1传入不同个数的参数调用sum方法:
        int result1 = sum(1,2);
        System.out.println(result1);//2-1:int,int 3
        int result2 = sum(1,2,3);
        System.out.println(result2);//2-1:int,int,int 6
        //如果定义的方法中没有与传入参数个数相匹配的方法,那么就会报错,如:
        //int result3 = sum(1,2,3,4);
        //int result3 = sum(1);

        //3-1-1.调用product方法(根据传入参数的类型调用对应的方法):
        System.out.println(product(1,2));//3-1:int,int 2
        System.out.println(product(1,3.0));//3-1:int,double 3
        System.out.println(product(3.0,2));//3-1:double,int 6.0
        System.out.println(product(3.0,3.0));//3-1:double,double 9

        //3-2-1.调用sums方法:
        System.out.println(sums(4,3.0));//3-2:int,double 7.0
        System.out.println(sums(4.0,2));//3-2:double,int 6.0

        //4-1-1.调用say方法:
        System.out.println(say("hello"));//4-1:String hello
    }

    //2-1.定义参数个数不同的两组sum方法:
    public static int sum(int a,int b){
        System.out.println("2-1:int,int");
        return a + b;
    }
    public static int sum(int a,int b,int c){
        System.out.println("2-1:int,int,int");
        return a + b + c;
    }

    //3-1.定义四组参数类型不同的方法sum:
    public static int product(int a,int b){
        System.out.println("3-1:int,int");
        return a * b;
    }
    public static int product(int a,double b){
        System.out.println("3-1:int,double");
        return (int) (a * b);
    }
    public static double product(double a,int b){
        System.out.println("3-1:double,int");
        return a * b;
    }
    public static int product(double a,double b){
        System.out.println("3-1:double,double");
        return (int) (a * b);
    }

    //3-2.定义两组参数顺序不同的方法sums:
    public static double sums(int a,double b){
        System.out.println("3-2:int,double");
        return a + b;
    }
    public static double sums(double a,int b){
        System.out.println("3-2:double,int");
        return a + b;
    }

    //4-1.定义两组参数名称不同的方法say:
    public static String say(String str){
        System.out.println("4-1:String");
        return str;
    }
    //定义仅仅参数名称不同的方法时会报错:
    //public static String say(String saystr){
      //  return saystr;
    //}
}

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦海123

快乐每一天!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值