【记录方法重载overload的学习】

记录方法重载overload的学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

在之前方法的基础上,学习到一种更加灵活的使用方法的形式,不需要记忆那么多方法名了,使用起来真的很不错。


提示:以下是本篇文章正文内容,下面案例可供参考

一、方法重载overload是什么?

对于类似的方法来说,因为参数表不一样,却需要记住那么多不同的方法名称,太麻烦。
所以引入方法重载概念:多个方法名称一样但是参数列表不一样。
好处:只需要记住一个方法名称,就可以实现多个功能。

二、方法重载overload学习与应用之旅

1.没有使用方法重载时的情况

代码如下(示例):

package fangfause;

public class overload1 {
    public static void main(String[] args) {
        //比如现在定义一些方法,它可以进行一些两个数字的相加,三个数字的相加,四个数字的相加...
        //没有使用方法重载时
        System.out.println(sum2(10,20));
        System.out.println(sum3(10,20,30));
        System.out.println(sum4(10,20,30,40));
        System.out.println(sum5(10,20,30,40,50));
    }
    public static int sum2(int a,int b){
        return a+b;
    }
    public static int sum3(int a,int b,int c){
        return a+b+c;
    }
    public static int sum4(int a,int b,int c,int d){
        return a+b+c+d;
    }
    public static int sum5(int a,int b,int c,int d,int e){
        return a+c+d+e;
    }
}

在这里插入图片描述

对于类似的方法来说,因为参数表不一样,却需要记住那么多不同的方法名称,太麻烦。

所以引入方法重载概念:多个方法名称一样但是参数列表不一样。

好处:只需要记住一个方法名称,就可以实现多个功能。

2.使用方法重载之后:

数据类型相同:

代码如下(示例):

package fangfause;

public class overload2 {
    public static void main(String[] args) {
        System.out.println(sum(10,20));
        System.out.println(sum(10,20,30));
        //只管写参数即可,只要有一个对的上以下定义过的方法即可
    }
    //方法名一致此时构成方法重载
    public static int sum(int a,int b){
        return a+b;
    }
    public static int sum(int a,int b,int c){
        return a+b+c;
    }
    public static int sum(int a,int b,int c,int d){
        return a+b+c+d;
    }
    public static int sum(int a,int b,int c,int d,int e){
        return a+c+d+e;
    }
}

在这里插入图片描述

数据类型不同:

package fangfause;

public class overload2 {
    public static void main(String[] args) {
        System.out.println(sum(10,20.0));
        System.out.println(sum(10.1,20));

    }
    //方法名一致此时构成方法重载
    public static int sum(int a,double b){
        return (int)(a+b);
    }
    public static int sum(double a,int b){
        return (int)(a+b);
    }
    public static int sum(double a,double b,double c){
        return (int)(a+b+c);
    }
    public static int sum(int a,int b,int c){
        return a+b+c;
    }
}

在这里插入图片描述

3.方法重载与下列因素有关:

1.参数个数不同。2.参数类型不同。3.参数的多类型顺序不同。

4.方法重载与下列因素无关:

1.与参数的名称无关。2.与方法的返回值类型无关。


习题

1.定义一个方法,判断两个数据是否一样,两个数据分别是两个byte类型,两个short类型,两个int类型,两个long类型

package fangfause;

public class oxiti1 {
    public static void main(String[] args) {
        byte a=10;
        byte b=20;
        System.out.println(isSame(a,b));
        System.out.println(isSame((short)20,(short)b));
        System.out.println(isSame(11,12));
        System.out.println(isSame(10l,20l));
    }
    public static boolean isSame(byte a,byte b){
        System.out.println("两个byte参数的方法执行!");
        boolean same;
        if(a==b)
        {
            same=true;
        }else {same=false;}
        return same;
    }
    public static boolean isSame(short a,short b){
        System.out.println("两个short参数的方法执行!");
        boolean same=a==b?true:false;
        return same;
    }
    public static boolean isSame(int a,int b){
        System.out.println("两个int参数的方法执行!");
        return a==b;
    }
    public static boolean isSame(long a,long b){
        System.out.println("两个long参数的方法执行!");
        if(a==b)
        {
             return true;
        }else {return false;}
    }
}

在这里插入图片描述

2.判断那些方法是重载关系

1.public static void open(){}//正确重载;
2.public static void open(int a){}//正确重载;
3.static void open(int a,int b){}//代码错误:和第八行冲突;
4.public static void open(double a,int b){};//正确重载
5.public static void open(int a,double b){};//代码错误:和第六行冲突6.public void open(int i,double d){};//代码错误和第五行冲突
7.public static void OPEN(){};//代码正确不会报错,但是并不是有效重载
8.public static void open(int i,int j){};//代码错误:和第三行重复

3.实现重载的println方法,可以做到传什么都行

package fangfause;

public class oxiti2 {
    public static void main(String[] args) {
        myprint(100);
        myprint("hello");
    }
    public static void myprint(byte num){
        System.out.println(num);
    }
    public static void myprint(short num){
        System.out.println(num);
    }
    public static void myprint(int num){
        System.out.println(num);
    }
    public static void myprint(long num){
        System.out.println(num);
    }
    public static void myprint(float num){
        System.out.println(num);
    }
    public static void myprint(double num){
        System.out.println(num);
    }
    public static void myprint(char zifu){
        System.out.println(zifu);
    }
    public static void myprint(boolean is){
        System.out.println(is);
    }
    public static void myprint(String str){
        System.out.println(str);
    }
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

淅淅同学

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值