首页 > 其他分享 >Day32 方法的重载

Day32 方法的重载

时间:2023-12-18 21:12:40浏览次数:26  
标签:num1 num2 int max Day32 result double 重载 方法

方法的重载

简单来说就是一个类里面有X个方法,并且有相同的名字 只是参数不同(个数、类型、排列顺序)

  • 重载就是在一个类中,有相同的函数名称,但形参不同的函数。

  • 方法的重载的规则:

    1.方法名称必须相同。

    2.参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。

  • 方法的返回类型可以相同也可以不相同。
    仅仅返回类型不同不足以成为方法的重载。

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

以下都是一下练习的代码:

1.

package com.baixiaofan.method;

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

        int max = max(10, 20);
        System.out.println(max);
    }

    //比大小
    public static int max(int num1,int num2){

        int result =0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }

    //再新加一个同名不用类型的方法  这里方法也叫max  但类型是double
    public static double max(double num1,double num2){

        double result =0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }
}

结果为:20

2.

package com.baixiaofan.method;

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

        double max = max(10, 20);
        System.out.println(max);
    }

    //比大小
    public static int max(int num1,int num2){

        int result =0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }

    //再新加一个同名不用类型的方法  这里方法也叫max  但类型是double
    public static double max(double num1,double num2){

        double result =0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }
}

结果是:20.0

所以编译器会根据max类型的不同 而自动调用不同的方法

3.

在加一个同名不同参数的方法

package com.baixiaofan.method;

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

        int max = max(10, 20, 60);
        System.out.println(max);
    }

    //比大小
    public static int max(int num1,int num2){

        int result =0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }

    //再新加一个同名不用类型的方法  这里方法也叫max  但类型是double
    public static double max(double num1,double num2){

        double result =0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }

    //在新加一个同名不同参数的方法

    public static int max(int num1,int num2,int num3){

        int result =0;

        if (num3==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num3>num2){
            result = num3;
        }else {
            result = num2;
        }
        return result;
    }
}

结果是:60

(从结果来看走了第三个方法)

4.

再来一个定义了max为double类型

package com.baixiaofan.method;

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

        double max = max(10, 20, 60);
        System.out.println(max);
    }

    //比大小
    public static int max(int num1,int num2){

        int result =0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }

    //再新加一个同名不用类型的方法  这里方法也叫max  但类型是double
    public static double max(double num1,double num2){

        double result =0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }

    //在新加一个同名不同参数的方法

    public static int max(int num1,int num2,int num3){

        int result =0;

        if (num3==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num3>num2){
            result = num3;
        }else {
            result = num2;
        }
        return result;
    }




}

结果为:60.0

(从结果来看,走了第三个方法,且最后把数据类型转换成double)

注意:如果此时把 double max = max(10, 20, 60); 改为 double max = max(10.0, 20.0, 60.0); 就会报错,没有可适用的方法

5.

package com.baixiaofan.method;

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

        int max = max(10.0, 20.0);
        System.out.println(max);
    }

    //比大小
    public static int max(int num1,int num2){

        int result =0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = num1;
        }else {
            result = num2;
        }
        return result;
    }

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

        int result =0;

        if (num1==num2){
            System.out.println("num1==num2");
            return 0;//终止方法
        }
        if (num1>num2){
            result = (int)num1;//强转为int!!!!!!!!!!!!!!!!!!!!!
        }else {
            result = (int)num2;//强转为int!!!!!!!!!!!!!!!!!!!!!!
        }
        return result;
    }



}

结果为:20

此时调用的是第二个方法

6.

小试牛刀:

package com.baixiaofan.method;

public class Demo05 {

    public static void main(String[] args) {

        //int sum = add(1, 2);   旧的实际参数

        int sum = add(4, 5, 6);//新的实际参数
        System.out.println(sum);

    }

    //旧方法
    public static int add(int a,int b){
        return a+b;
    }

    //重载一个同名新方法
    public static int add(int a,int b,int c){
        return a+b+c;
    }


}

结果为:15

标签:num1,num2,int,max,Day32,result,double,重载,方法
From: https://www.cnblogs.com/baixiaofan/p/17912272.html

相关文章

  • 矩阵化为行阶梯型、行最简阶梯型、标准型、单位矩阵的方法
    1.行阶梯型1.1形式若有0行,都在下方从行上看,从左边起,出现连续的0的个数自上而下,严格单调增加1.2方法\[\left[\begin{matrix}1&-1&2&1&0\\2&-2&4&2&0\\3&0&6&-1&1\\0&3&0&0&1\end{matrix}\right]\]通过行变换将第一列尽量都变成0......
  • 测试开发 | 保护数据隐私的分布式学习方法:构建安全智能未来
    随着信息时代的不断发展,数据隐私的安全性成为科技领域亟待解决的问题之一。分布式学习作为一种保护数据隐私的先进方法,正在成为构建安全智能未来的关键一环。本文将探讨分布式学习方法如何在保护数据隐私的同时推动科技发展。1.数据隐私的挑战随着大数据时代的到来,个人隐私数据的......
  • 测试用例设计方法六脉神剑——第五剑:化气为型,场景用例破云
    1引言前几篇文章主要针对单点功能的测试用例设计方法展开介绍。然而,当拿到一个测试任务时,并非先关注某个功能的细节测试,而是先要使用场景法对主要业务流程和主要功能展开测试,当业务场景没有问题后,再使用等价类、边界值、判定表等方法对细节功能进行测试(先整体后细节)。2概念及......
  • MyBatis方法入参打@Param后,xml中的取值方式
    /***分页查询对账结果**@parampage*@paramrequestBO*@return*/Page<ReconcileDetailResultPageBO>pageDetailSettleDataAndResult(IPage<ReconcileDetailResultPageBO>page,@Param("requestBO")ReconcileDetailResultPageRequestBOrequestBO)......
  • 关于Pinia 使用setup方式书写 $reset方法失效问题
    在当我使用的时候踩到一个坑:当我在使用$reset想要重置state数据的时候,却报错了,经过排查发现是因为没有使用选项式进行编写代码关于$reset方法Pinia文档中只有简短的介绍:您可以通过调用store上的$reset()方法将状态重置到其初始值:conststore=useStore()store.$res......
  • 委托、匿名方法和Lambda表达式
    匿名方法和Lambda表达式输出的都是委托类型(也就是一个方法)  lambda表达式的几种形式 ......
  • Arrays工具类二分查找方法binarySearch方法详解​
    Arrays工具类二分查找方法binarySearch方法详解基础知识该方法的一般形式是publicstatic<T>intbinarySearch(T[]a,Tkey),对于基本类型,都有相应的重载方法,如针对int类型有binarySearch(int[]a,intkey)等。该方法的原理是使用二分查找算法在指定的数组中搜索指定的值。在调......
  • Python 删除行列的操作方法有哪些
    在Python中,删除行和列的操作通常用于处理二维数组、矩阵或数据框等数据结构。通过删除不需要的行列,可以使数据结构更加紧凑和易于处理。本文将介绍几种Python中删除行列的操作方法。删除行在Python中,删除行的操作方法有多种,以下是其中的几种方法:方法一:使用`del`关键字使用`del`关键......
  • bwa aln使用方法
    bwaaln是一个用于DNA序列比对的工具,主要用于将测序数据与参考基因组进行比对。您可以按照以下步骤使用bwaaln:安装bwa软件:首先,您需要从bwa的官方网站(http://bio-bwa.sourceforge.net/)下载并安装bwa软件,确保您的计算机上已经安装了必要的依赖项。准备参考基因组:您需要准备一......
  • TSNAPred:通过集成方法预测类型特异性核酸结合残基
    TSNAPred:通过集成方法预测类型特异性核酸结合残基会议地点:腾讯会议期刊:BriefingsinBioinformatics作者:WenjuanNieandLeiDeng关键词:DNA-bindingresidues,RNA-bindingresidues,LightGBM,Capsulenetwork年份:2022论文博客论文地址代码地址论文:TSNA.pdf(1.5MB)主要内......