首页 > 其他分享 >Day32--重载

Day32--重载

时间:2024-11-17 21:30:41浏览次数:1  
标签:-- Day32 int add 参数 重载 方法 public

Day32--重载

在 Java 中,重载(overloading)是指在同一个类中,多个方法具有相同的名字,但有不同的参数列表。以下是对 Java 重载的详细解释:

一、重载的主要特点和作用

  1. 增加方法的灵活性

    • 通过重载,可以为同一个操作提供多种不同的实现方式,以适应不同的输入参数。例如,一个用于计算两个数之和的方法,可以重载为接受不同数据类型的参数,如整数、浮点数等。
    • 这样可以根据实际情况选择最合适的方法来调用,提高了代码的灵活性和可扩展性。
  2. 提高代码的可读性和可维护性

    • 当多个方法具有相似的功能但针对不同的参数类型时,使用重载可以使代码更加清晰易懂。例如,有一组方法分别用于打印不同类型的数据,如打印整数、字符串和数组等。通过重载,可以使用相同的方法名“print”,根据传入的参数类型自动调用相应的方法。
    • 这使得代码更易于理解和维护,减少了方法名的混乱和冗余。

二、重载的规则

  1. 方法名相同:重载的方法必须具有相同的方法名。这是重载的基本特征,通过相同的方法名来表示一组相关的操作。

  2. 参数列表不同

    • 参数的数量、类型或顺序不同。例如,可以有一个方法接受一个整数参数,另一个方法接受两个整数参数,或者一个方法接受整数参数,另一个方法接受字符串参数。
    • 参数列表的不同是区分重载方法的关键。
  3. 返回类型不影响重载:重载方法的返回类型可以相同也可以不同,但返回类型不是区分重载方法的依据。例如,不能仅仅因为两个方法的返回类型不同而认为它们是重载关系。

  4. 访问修饰符不影响重载:重载方法的访问修饰符(如 public、private、protected 等)可以相同也可以不同,但访问修饰符也不是区分重载方法的依据。

三、示例代码

以下是一个 Java 类中方法重载的示例:

class Calculator {
    // 两个整数相加的方法
    public int add(int a, int b) {
        return a + b;
    }

    // 三个整数相加的方法
    public int add(int a, int b, int c) {
        return a + b + c;
    }

    // 两个浮点数相加的方法
    public double add(double a, double b) {
        return a + b;
    }
}

在这个示例中,Calculator类中有三个名为“add”的方法,它们分别接受不同类型和数量的参数,实现了方法的重载。

可以通过以下方式调用这些重载方法:

public class Main {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        int sum1 = calculator.add(5, 3);
        int sum2 = calculator.add(2, 4, 6);
        double sum3 = calculator.add(2.5, 3.5);
        System.out.println("Sum of two integers: " + sum1);
        System.out.println("Sum of three integers: " + sum2);
        System.out.println("Sum of two doubles: " + sum3);
    }
}

这段代码创建了一个Calculator对象,并分别调用了不同的重载方法来进行整数和浮点数的加法运算,输出结果展示了不同重载方法的调用结果。

标签:--,Day32,int,add,参数,重载,方法,public
From: https://www.cnblogs.com/xiaokunzhong/p/18551147

相关文章

  • MLLM_20241117
    Paper1题目:INFERENCEOPTIMALVLMSNEEDONLYONEVISUALTOKENBUTLARGERMODELS作者团队:KevinY.Li,SachinGoyal,JoãoD.Semedo,J.ZicoKolter(CMU)链接:https://arxiv.org/abs/2411.033121.论文试图解决什么问题?是否是一个新问题?论文试图解决VLMs推理阶......
  • SM 集训记录
    DAY0(2024.11.15)T2GYM104787M首先定义一个副本连通块是只经过编号\(>n\)的节点形成的连通块。不难发现一个副本连通块(绿色)会连接着一些编号\(<n\)的叶子,然后与原图联通,并且与原图相同部分组成一个对称的连通块。就像下面的图一样:然后假如有\(lf\)个叶子(蓝色节点),其实......
  • 2024-2025-1 20241328 《计算机基础与程序设计》第八周学习总结
    2024-2025-120241328《计算机基础与程序设计》第八周学习总结作业信息课程2024-2025-1-计算机基础与程序设计作业要求2024-2025-1计算机基础与程序设计第八周作业作业目标功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行作......
  • 2024-2025-1 20241304 《计算机基础与程序设计》第8周学习总结
    2024-2025-120241304《计算机基础与程序设计》第8周学习总结作业信息|这个作业属于哪个课程|<2024-2025-1-计算机基础与程序设计)|>|-- |-- ||这个作业要求在哪里|<作业要求的链接>(如2024-2025-1计算机基础与程序设计第八周作业)||这个作业的目标|<学习目标功能设计与面......
  • 团队项目冲刺--Day5
    每天举行站立式会议情况简述敏捷开发起始时间2024/11/1500:00敏捷开发终止时间2024/11/1600:00会议基本内容摘要详细,汇报了各自进度,并对接下来的工作进行安排参与讨论人员全体参与讨论时长2024/11/1512:30-13:401h10m昨天已完成的工作成员......
  • NOIP 模拟 9
    A送信卒直接二分。B共轭树图看了好多篇题解都说的不太清楚,随便观察一下得知子树间互不影响,且没有边相交,在不连直接父亲的情况下,孩子的父亲一定比祖先的父亲靠上,所以这道题考虑的是和祖先的关系,而不是与孩子的关系,然后这个时候可简单地设计出一种状态,\(f_{u,i}\)表示\(u\)......
  • NOIP 模拟 8
    搬的【MX-S5】梦熊NOIP2024模拟赛1(同步赛)A王国边缘倍增写脸上了。B买东西题反悔贪心写脸上了,首先按物品价格从小到大排序,这样之前用的优惠券一定可以给现在的优惠券用,如果给价格为\(a\),折扣价为\(w\)的物品用了优惠为\(x\)的优惠券,现在拿过来给\(b\)用后的贡献是......
  • log 工具
    #defineBUF_MAX_SIZE(1024)enum{SILENCEFATALERRORNOTICEINFODEBUGTRACE}voidpr_logs(intlevel,constchar*fmt,...);intg_level=INFO;#definemlog_trace(fmt,...)pr_logs(TRACE,"[%s][%d]"fmt,__FUNCTION__,__LINE__,##__V......
  • HBase的常用命令
    一、general类1、查看集群的状态status2、查看数据库版本version3、显示当前用户和组whoami4、查看操作表的命令table_help5、退出hbaseexit或者ctrl+c二、DDL相关注:DDL是用于定义和管理数据库中的结构的命令,例如创建,删除,修改表等操作1、创建表注:创建表的时候需......
  • 任务预测指标整理
    AGraph-basedRepresentationFrameworkforTrajectoryRecoveryviaSpatiotemporalInterval-InformedSeq2Seq预测路段比例+坐标(欧几里得距离)+坐标(道路比例之间的距离)根据您提供的文档内容,该研究的重点是轨迹恢复(trajectoryrecovery),而不是直接预测坐标或进行道路分类......