前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转Java方法重载和可变参数,让你的代码更灵活,有两下子!

玩转Java方法重载和可变参数,让你的代码更灵活,有两下子!

原创
作者头像
bug菌
发布2024-06-26 09:11:44
1910
发布2024-06-26 09:11:44
举报
文章被收录于专栏:滚雪球学Java滚雪球学Java

  咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~


🏆本文收录于 **[「滚雪球学Java」 ](https://blog.csdn.net/weixin_43970743/category_9600553.html)专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅**!持续更新中,up!up!up!!

代码语言:java
复制
环境说明:Windows 10 + IntelliJ IDEA 2021.3.2 + Jdk 1.8

前言

  在Java中,方法重载是一种简单而常见的技术,它允许我们定义拥有相同名称但参数列表不同的多个方法。这使得我们能够以更加灵活的方式实现相同的功能,同时也方便了代码的维护与扩展。

  除此之外,Java还提供了可变参数的特性,可以在参数数量不确定的情况下调用方法,这极大地增强了代码的通用性和灵活性。

  本文将介绍Java方法重载和可变参数的概念和用法,通过代码实例演示其使用方法,帮助读者更好地掌握这两个重要的Java编程技术。

摘要

本文将主要介绍以下内容:

  • 方法重载的概念和用法
  • 可变参数的概念和用法
  • 代码实例演示

正文

方法重载的概念和用法

  方法重载是指在一个类中定义多个方法,它们具有相同的方法名但参数列表不同。在Java中,方法重载可以使用不同的参数数量、类型或顺序进行定义。

下面是一个简单的例子:

代码语言:java
复制
public 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;
    }
}

  在这个例子中,我们定义了一个名为add的方法,但它带有不同数量参数的不同版本。这使得我们能够以更加灵活的方式实现相同的功能。

  接着我将对上述代码进行详细的一个逐句解读,希望能够帮助到同学们,能以更快的速度对其知识点掌握学习,这也是我写此文的初衷,授人以鱼不如授人以渔,只有将其原理摸透,日后应对场景使用,才能得心应手,所以如果有基础的同学,可以略过如下代码分析步骤,然而没基础的同学,还是需要加强对代码的理解,方便你深入理解并掌握其常规使用。

  这段Java代码定义了一个名为Calculator的类,其中包含两个方法,这两个方法都叫做add,但它们的参数列表不同,这在Java中称为方法重载(Method Overloading)。下面是对这段代码的详细解析:

  1. 类定义 (public class Calculator):定义了一个名为Calculator的公共类。
  2. 第一个**add**方法 (public int add(int a, int b)):
    • 这是一个重载的add方法,接受两个整数参数ab
    • 方法返回这两个整数的和。
  3. 第二个**add**方法 (public int add(int a, int b, int c)):
    • 这是另一个重载的add方法,接受三个整数参数abc
    • 方法返回这三个整数的和。
  4. 方法重载
    • Java允许在同一个类中定义多个同名方法,只要它们的参数列表不同。这允许你使用同一个方法名来执行相似的操作,但操作的数据可以有不同的数量或类型。
  5. 方法调用示例: - 如果使用这个Calculator类,可以这样调用这些方法:Calculator calculator = new Calculator(); int result1 = calculator.add(5, 10); // 调用第一个add方法,结果为15 int result2 = calculator.add(5, 10, 15); // 调用第二个add方法,结果为30 - 根据传递给add方法的参数数量,Java虚拟机会确定调用哪个重载的方法。

代码作用

  这段代码演示了如何在Java中使用方法重载来定义执行相似操作但接受不同数量参数的方法。

代码执行流程

  1. 创建Calculator类的实例。
  2. 使用不同数量的参数调用add方法。
  3. 根据传递的参数数量,相应的重载add方法被调用并返回结果。

代码改进

  • 代码已经很好地展示了方法重载的使用,但可以进一步增加注释来提高代码的可读性。
  • 如果需要,可以继续扩展add方法,添加更多重载版本,例如接受四个或更多整数参数的版本。

小结

  这段代码是一个很好的Java方法重载使用的示例,展示了如何定义多个同名方法,但每个方法接受不同数量的参数。这是学习Java编程中方法重载概念的基础。

  Java编译器会根据调用时的参数类型、数量和顺序自动选择合适的版本。比如:

代码语言:java
复制
Calculator calculator = new Calculator();
int sum1 = calculator.add(10, 20); // 调用 add(int a, int b) 方法
int sum2 = calculator.add(10, 20, 30); // 调用 add(int a, int b, int c) 方法

  需要注意的是,在方法重载中,方法名相同但是参数列表不同的方法对于编译器而言是不同的。因此,重载的方法应该被视为完全不同的方法,与彼此之间没有任何联系。

可变参数的概念和用法

  可变参数是指在方法中定义一个参数,其个数可以是任意的,Java编译器将其视为一个数组。在Java中,可变参数使用三个点(...)来表示。

下面是一个简单的例子:

代码语言:java
复制
public class Calculator {
    public int add(int... numbers) {
        int sum = 0;
        for (int number : numbers) {
            sum += number;
        }
        return sum;
    }
}

  在这个例子中,我们定义了一个名为add的方法,它带有一个可变参数numbers,可以接收任意数量的整型参数。在方法体中,我们使用循环计算了所有参数的和。

  我们可以在调用时将任意数量的参数传递给该方法,如下所示:

代码语言:java
复制
Calculator calculator = new Calculator();
int sum1 = calculator.add(10, 20); // 30
int sum2 = calculator.add(10, 20, 30); // 60
int sum3 = calculator.add(10, 20, 30, 40); // 100

  在调用时,我们可以向可变参数传递任意多个参数,编译器会自动将这些参数封装为一个数组,作为实际参数传递给方法。

  需要注意的是,可变参数必须是方法的最后一个参数。因为在调用时,Java编译器会优先匹配之前的参数,并将剩余的参数封装为一个数组,作为可变参数传递给方法。

  接着我将对上述代码进行详细的一个逐句解读,希望能够帮助到同学们,能以更快的速度对其知识点掌握学习,这也是我写此文的初衷,授人以鱼不如授人以渔,只有将其原理摸透,日后应对场景使用,才能得心应手,所以如果有基础的同学,可以略过如下代码分析步骤,然而没基础的同学,还是需要加强对代码的理解,方便你深入理解并掌握其常规使用。

  这个例子展示了Java中可变参数(varargs)的使用方法。下面是对这段代码的详细解析:

  1. 类定义 (public class Calculator):定义了一个名为Calculator的公共类。
  2. 可变参数方法 (public int add(int... numbers)):定义了一个名为add的方法,它使用可变参数语法int... numbers。这意味着numbers参数可以接受零个或多个int类型的参数。在Java中,可变参数实际上是一个数组。
  3. 计算和
    • int sum = 0;:初始化一个int类型的变量sum,用于累加所有传入的参数值。
    • for (int number : numbers) { sum += number; }:使用增强型for循环遍历numbers数组中的每个元素,并将它们加到sum变量上。
  4. 返回结果
    • return sum;:方法返回计算出的总和。
  5. 创建Calculator对象
    • Calculator calculator = new Calculator();:在调用add方法之前,首先需要创建Calculator类的一个实例。
  6. 调用可变参数方法
    • int sum1 = calculator.add(10, 20);:调用add方法,传入两个整数10和20,计算它们的和。
    • int sum2 = calculator.add(10, 20, 30);:调用add方法,传入三个整数10、20和30,计算它们的和。
    • int sum3 = calculator.add(10, 20, 30, 40);:调用add方法,传入四个整数10、20、30和40,计算它们的和。
  7. 注释中的调用结果
    • 注释中的// 30// 60// 100分别是对每次调用add方法后预期结果的说明。

代码作用

  这段代码演示了如何在Java中定义和使用可变参数,使得同一个方法可以接收不同数量的参数,提高了方法的灵活性。

代码执行流程

  1. 创建Calculator类的实例。
  2. 使用不同数量的整数调用add方法。
  3. 计算并返回每次调用的结果。

代码改进

  • 代码已经很好地展示了可变参数的使用,但可以进一步增加注释来提高代码的可读性。
  • 可以为Calculator类添加更多的数学运算方法,以扩展其功能。

小结

  这段代码是一个很好的Java可变参数使用的示例,展示了如何定义和调用接受任意数量参数的方法。这是学习Java编程中可变参数概念的基础。

代码实例演示

下面是一个完整的示例,演示了Java方法重载和可变参数的用法。

代码语言:java
复制
public 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 int add(int... numbers) {
        int sum = 0;
        for (int number : numbers) {
            sum += number;
        }
        return sum;
    }
  
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        int sum1 = calculator.add(10, 20); // 调用 add(int a, int b) 方法
        int sum2 = calculator.add(10, 20, 30); // 调用 add(int a, int b, int c) 方法
        int sum3 = calculator.add(10, 20, 30, 40); // 调用 add(int... numbers) 方法
        System.out.println("sum1 = " + sum1); // sum1 = 30
        System.out.println("sum2 = " + sum2); // sum2 = 60
        System.out.println("sum3 = " + sum3); // sum3 = 100
    }
}

  在这个示例中,我们定义了三个重载的方法add,分别接收不同数量的参数。在main方法中,我们分别调用了三个方法,并打印结果。由于Java编译器会自动匹配方法的参数类型和数量,在调用时我们不需要显式地指定使用哪个版本的方法。

  接着我将对上述代码进行详细的一个逐句解读,希望能够帮助到同学们,能以更快的速度对其知识点掌握学习,这也是我写此文的初衷,授人以鱼不如授人以渔,只有将其原理摸透,日后应对场景使用,才能得心应手,所以如果有基础的同学,可以略过如下代码分析步骤,然而没基础的同学,还是需要加强对代码的理解,方便你深入理解并掌握其常规使用。

  这段Java代码定义了一个名为Calculator的类,用于演示方法重载和可变参数的使用。下面是对这段代码的详细解析:

  1. 类定义 (public class Calculator):定义了一个名为Calculator的公共类。
  2. 方法重载
    • public int add(int a, int b):定义了第一个add方法,接受两个整数参数并返回它们的和。
    • public int add(int a, int b, int c):定义了第二个add方法,接受三个整数参数并返回它们的和。
  3. 可变参数方法 (public int add(int... numbers)):定义了一个接受可变数量整数参数的add方法。使用int... numbers语法声明,numbers实际上是一个整数数组。方法内部通过一个循环遍历所有参数并计算它们的总和。
  4. 主方法 (public static void main(String[] args)):这是Java程序的入口点,main方法接受一个字符串数组args作为命令行参数。
  5. 创建Calculator对象
    • Calculator calculator = new Calculator();:在main方法中,创建了Calculator类的一个实例。
  6. 调用**add**方法
    • int sum1 = calculator.add(10, 20);:调用第一个add方法,传入两个整数10和20,并将返回的和赋给变量sum1
    • int sum2 = calculator.add(10, 20, 30);:调用第二个add方法,传入三个整数10、20和30,并将返回的和赋给变量sum2
    • int sum3 = calculator.add(10, 20, 30, 40);:调用可变参数的add方法,传入四个整数10、20、30和40,并将返回的和赋给变量sum3
  7. 打印结果
    • System.out.println("sum1 = " + sum1); // sum1 = 30:打印变量sum1的值,即第一个add方法的返回值。
    • System.out.println("sum2 = " + sum2); // sum2 = 60:打印变量sum2的值,即第二个add方法的返回值。
    • System.out.println("sum3 = " + sum3); // sum3 = 100:打印变量sum3的值,即可变参数add方法的返回值。

代码作用

  这段代码演示了Java中方法重载的概念,即同一个类中可以有多个同名方法,只要它们的参数列表不同。同时,它也演示了可变参数的使用,允许方法接受任意数量的参数。

代码执行流程

  1. Java虚拟机(JVM)启动,并查找main方法。
  2. main方法被执行,创建Calculator类的实例。
  3. 调用Calculator类的三个不同add方法,并分别传入不同的参数。
  4. 打印每个add方法的返回值。

代码改进

  • 代码已经很好地展示了方法重载和可变参数的使用,但可以进一步增加注释来提高代码的可读性。
  • 可以考虑为Calculator类添加更多的数学运算方法,以扩展其功能。

小结

  这段代码是一个很好的Java方法重载和可变参数使用的示例,展示了如何定义和调用多个同名方法,以及如何使用可变参数来处理不定数量的输入参数。这是学习Java编程中方法重载和可变参数概念的基础。

总结

  方法重载和可变参数是Java中常见的编程技巧,能够使我们以更加优雅和灵活的方式实现代码功能。重载的方法应该被视为完全不同的方法,不能互相调用或者继承。可变参数必须是方法的最后一个参数,其个数可以是任意的。在调用时,编译器会自动将可变参数封装为数组,作为实际参数传递给方法。

☀️建议/推荐你

  无论你是计算机专业的学生,还是对编程有兴趣的小伙伴,都建议直接毫无顾忌的学习此专栏「滚雪球学Java」,bug菌郑重承诺,凡是学习此专栏的同学,均能获取到所需的知识和技能,全网最快速入门Java编程,就像滚雪球一样,越滚越大,指数级提升。

  码字不易,如果这篇文章对你有所帮助,帮忙给bugj菌来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。   同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!

📣关于我

  我是bug菌,CSDN | 掘金 | infoQ | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金等平台签约作者,华为云 | 阿里云| 腾讯云等社区优质创作者,全网粉丝合计30w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。


--End

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 摘要
  • 正文
    • 方法重载的概念和用法
      • 代码作用
      • 代码执行流程
      • 代码改进
      • 小结
    • 可变参数的概念和用法
      • 代码作用
      • 代码执行流程
      • 代码改进
      • 小结
    • 代码实例演示
      • 代码作用
      • 代码执行流程
      • 代码改进
      • 小结
    • 总结
    • ☀️建议/推荐你
    • 📣关于我
    相关产品与服务
    腾讯云代码分析
    腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档