Java的方法的重载

大家好,今天分享一下Java方法的重载
方法的重载就是在一个类当中,有相同的函数名称。但是形参不同的参数
方法重载的规则:
1. 方法名称必须相同。
2. 参数列表必须不同 (个数不同,或者类型不同,或者参数排列顺序不同等)。
3. 方法的返回值可以相同,也可以不相同。
4. 如果只是返回值不同不足以成为方法的重载

实现理论:
方法名称相同时,编译器会根据调用方法的参数个数,参数类型逐个匹配,以选择对应的方式,如果匹配失败,则编译器报错

下面敲代码来说明:

package method;

public class Demo01 {
    public static void main(String[] args) {    //main方法
        int max=max(10,20);      //实际参数:(实参)实际调用传递给它的的参数,     这里也是我们定义的两个实际变量,num1=10,num2=20
        System.out.println(max);
    }
    //比大小     比较两个参数的最大值
    public  static int max(int num1,int num2) {    //在这个例子当中,我们定义num1和num2两个参数
        int result = 0;                             //它就是形式参数(形参),是用来定义作用的
        if (num1 == num2) {       //如果num1 的赋值等于num2,比较真实情况,不是的
            System.out.println("num1==num2");    //输出一样的值
            return 0;   //终止方法
        }
        if (num1 > num2){       //我们使用if....else语句去变量所赋值的大小       //如果num1 的赋值大于num2,比较真实情况,不是的
            result = num1;        //返回num1的赋值,即10
        }else{             //如果是另外的情况
            result = num2;      //  返回num2的赋值,即20
        }
        return result;     //返回
//上面的实参给下面的两个两个变量提供了具体的数值,
        //接下来下面public当中的方法对数据进行处理
        // return result; 会返回这个处理的值,
        //进而交给max这个变量,代表的是一个具体的值

    }
}

我们使用上篇文章当中的代码来介绍

它的运行结果

在这里插入图片描述
改这段代码:

 int max=max(10.0,20.0);          //程序在这个时候,会报错

运行结果

在这里插入图片描述

改动

double max=max(10.0,20.0); 

改动

 public  static double max(double num1,double num2) {

改动

 double result = 0;           

整体代码

package method;

public class Demo02 {
    public static void main(String[] args) {    //main方法
        double max=max(10.0,20.0);      //实际参数:(实参)实际调用传递给它的的参数,     这里也是我们定义的两个实际变量,num1=10,num2=20
        System.out.println(max);
    }
    //比大小     比较两个参数的最大值
    public  static double max(double num1,double num2) {    //在这个例子当中,我们定义num1和num2两个参数
        double result = 0;                             //它就是形式参数(形参),是用来定义作用的
        if (num1 == num2) {       //如果num1 的赋值等于num2,比较真实情况,不是的
            System.out.println("num1==num2");    //输出一样的值
            return 0;   //终止方法
        }
        if (num1 > num2){       //我们使用if....else语句去变量所赋值的大小       //如果num1 的赋值大于num2,比较真实情况,不是的
            result = num1;        //返回num1的赋值,即10
        }else{             //如果是另外的情况
            result = num2;      //  返回num2的赋值,即20
        }
        return result;     //返回
//上面的实参给下面的两个两个变量提供了具体的数值,
        //接下来下面public当中的方法对数据进行处理
        // return result; 会返回这个处理的值,
        //进而交给max这个变量,代表的是一个具体的值

    }
}

运行结果:
在这里插入图片描述

就解决了这个问题

下面看代码

package method;

public class Demo02 {
    public static void main(String[] args) {    //main方法
        double max = max(10.0, 20.0);      //实际参数:(实参)实际调用传递给它的的参数,     
        System.out.println(max);
    }

    //比大小     比较两个参数的最大值
    public static double max(double num1, double num2) {    //在这个例子当中,我们定义num1和num2两个参数,改为double
        double result = 0;      //改动double                       //它就是形式参数(形参),是用来定义作用的
        if (num1 == num2) {       //如果num1 的赋值等于num2,比较真实情况,不是的
            System.out.println("num1==num2");    //输出一样的值
            return 0;   //终止方法
        }
        if (num1 > num2) {       //我们使用if....else语句去变量所赋值的大小       //如果num1 的赋值大于num2,比较真实情况,不是的
            result = num1;        //返回num1的赋值,即10
        } else {             //如果是另外的情况
            result = num2;      //  返回num2的赋值,即20
        }
        return result;     //返回
//上面的实参给下面的两个两个变量提供了具体的数值,
        //接下来下面public当中的方法对数据进行处理
        // return result; 会返回这个处理的值,
        //进而交给max这个变量,代表的是一个具体的值
//比大小
    }


//下面是以int类型,写的方法

    public static int max(int num1, int num2) {    //在这个例子当中,我们定义num1和num2两个参数
        int result = 0;                             //它就是形式参数(形参),是用来定义作用的
        if (num1 == num2) {       //如果num1 的赋值等于num2,比较真实情况,不是的
            System.out.println("num1==num2");    //输出一样的值
            return 0;   //终止方法
        }
        if (num1 > num2) {       //我们使用if....else语句去变量所赋值的大小       //如果num1 的赋值大于num2,比较真实情况,不是的
            result = num1;        //返回num1的赋值,即10
        } else {             //如果是另外的情况
            result = num2;      //  返回num2的赋值,即20
        }
        return result;     //返回


    }

这两个是我们说方法重载的重点:

double max(double num1, double num2)
public static int max(int num1, int num2)

我们可以看见这两行max是方法名,是一样的

我们可以看见这两行括号里的东西是不一样的 ,这就是参数列表,必须要不一样

参数类型不一样,是为了系统识别方法,否则,它就不知道执行那个方法

好了,关于Java方法的重载就讲到这里了,谢谢大家

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

思诚代码块

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

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

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

打赏作者

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

抵扣说明:

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

余额充值