java 可变参数 详解(通俗易懂)

这篇具有很好参考价值的文章主要介绍了java 可变参数 详解(通俗易懂)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、概述:

二、格式:

三、注意事项(使用规范):

四、代码演示:

        演示规范①~③:

        演示规范④:

        演示规范⑤:

        课堂练习:

        代码演示:

        输出结果:

五、英文版本讲解:


一、概述:

        java中,我们可以将名称相同,功能也相同,但是形参个数不同多个函数,封装为某个类中的一个函数。比如:要求多个数的和,此时并不能确定一共要求多少个数的和,如果形参的个数每变化一次,就要有一个新的函数,那我们编程的效率就会大打折扣。我们可以通过可变参数的方式来解决这个简单的问题。

二、格式:

        访问权限修饰符       返回值类型       函数名(数据类型...    变量名){

                //方法体

        }

        Δ注意这里的"数据类型... 变量名"格式,里面的三个点的格式是固定的,不可随便添加空格

三、注意事项(使用规范):

        规范①:调用可变参数的方法时,传入实参的个数可以是0~n。(n = 0,1,2......)

        规范②:传入的实参也可以直接是一个数组。

        规范③:可变参数的本质,其实就是一个数组,因此你也可以把它当数组来用。

        规范④:当形参中既含有可变参数,也含有普通的参数,必须确保可变参数在形参列表的最后。

        规范⑤:每个形参列表都只能有一个可变参数。

四、代码演示:

        演示规范①~③:

package csdn.varparameter;

/*
    规范①:调用可变参数的方法时,传入实参的个数可以是0~n。(n = 0,1,2......)

    规范②:传入的实参也可以直接是一个数组

    规范③:可变参数的本质,其实就是一个数组,因此你也可以把它当数组来用。

    规范④:当形参中既含有可变参数,也含有普通的参数,必须确保可变参数在形参列表的最后。

    规范⑤:每个形参列表都只能有一个可变参数。
 */
public class VariableParameter {
    public static void main(String[] args) {
        Test1 t1 = new Test1();

//    规范①:调用可变参数的方法时,传入实参的个数可以是0~n。(n = 0,1,2......)
        int[] array1 = {2, 11, 211, 985, 141};
        int[] array2 = {1, 2, 7};

        System.out.println(t1.getSum(0, 1, 2, 3, 4, 5));
        System.out.println(t1.getSum(5, 5, 5));
        System.out.println("------------------------");
//    规范②:传入的实参也可以直接是一个数组
        System.out.println(t1.getSum(array1));
        System.out.println(t1.getSum(array2));
        System.out.println("------------------------");
    }
}

class Test1 {
    public int getSum(int... parameters) {
//    规范③:可变参数的本质,其实就是一个数组,因此你也可以把它当数组来用,例如,我们可以获取它的长度。
        System.out.println("可变参数中含有" + parameters.length + "个参数");

        int num = 0;
        for (int i = 0; i < parameters.length; ++i) {
            num += parameters[i];
        }

        System.out.print("传入参数的总和是 : ");

        return num;
    }
}

        输出结果:

java 可变参数,# 常用知识,Java基础,java,开发语言,经验分享,后端  

        演示规范④:

package csdn.varparameter;

/*
    规范④:当形参中既含有可变参数,也含有普通的参数,必须确保可变参数在形参列表的最后。

    规范⑤:每个形参列表都只能有一个可变参数。
 */
public class VariableParameter {
    public static void main(String[] args) {
        Test2 t2 = new Test2();

        int[] array1 = {2, 11, 211, 985, 141};
        int[] array2 = {1, 2, 7, 5};

        System.out.println(t2.getSum2(array1, 1, 3, 1));
        System.out.println(t2.getSum2(array1, array2));
        System.out.println("------------------------");
    }
}


//    规范④:当形参中既含有可变参数,也含有普通的参数,必须确保可变参数在形参列表的最后。
class Test2 {
    public int getSum2(int[] arr, int... parameters) {
        System.out.println("可变参数中含有" + parameters.length + "个参数");
        /*
            值得注意的是,此处输出的仅仅是可变参数中的个数,并不是所有形参的个数
            形参的个数 >= 实际可变参数的长度
         */
        int sum1 = 0;
        int sum2 = 0;

        for (int i = 0; i < arr.length; ++i) {
            sum1 += arr[i];
        }   //用变量sum1来保存直接传入的数组arr中所有整型元素的和

        for (int i = 0; i < parameters.length; ++i) {
            sum2 += parameters[i];
        }   //用变量sum2来保存可变参数的实际传入参数的值的总和

        System.out.print("传入参数的总的和为 : ");

        return sum1 + sum2;
    }
}

        输出结果:        

java 可变参数,# 常用知识,Java基础,java,开发语言,经验分享,后端

        演示规范⑤:

        规范⑤其实很好理解。你仔细看看规范④:可变参数与普通参数混用时,可变参数必须放在形参列表的最后。也就是说,只要你用了可变参数,你就得放最后,否则报错。所以,只要列表中有超过一个可变参数,你就无法保证每个可变参数都能放在最后,如下,GIF图:    java 可变参数,# 常用知识,Java基础,java,开发语言,经验分享,后端

        课堂练习:

         需求:利用可变参数,在Student类中定义一个静态方法,以达到这样的效果:调用该方法时,需要传入学生的姓名,年级和他四门课的成绩,然后会在控制台上打印出该学生的信息。

        代码演示:

package csdn.varparameter;

public class VariableParameter {
    public static void main(String[] args) {
        System.out.println(Test3.studentScore("Cyan", 14, 141, 135, 80, 75));
        System.out.println(Test3.studentScore("Five", 14, 135, 130, 82, 70));
        System.out.println(Test3.studentScore("Ice", 14, 128, 125, 80, 80));
    }
}


class Test3 {
    public static String studentScore(String name, int grade, int... scores) {
        int scoreNum = 0;
        for (int i = 0; i < scores.length; ++i) {
            scoreNum += scores[i];
        }

        return name + ",现在上 " + grade + "年级,一共得了" + scoreNum + "分";
    }
}

        输出结果:

java 可变参数,# 常用知识,Java基础,java,开发语言,经验分享,后端

五、英文版本讲解:

        up也用英文讲解了可变参数的使用。有兴趣的小伙伴儿们,可以去看看英文版。链接如下:

https://blog.csdn.net/TYRA9/article/details/128188204?spm=1001.2014.3001.5502https://blog.csdn.net/TYRA9/article/details/128188204?spm=1001.2014.3001.5502

        System.out.println("END------------------------------------------------------------");文章来源地址https://www.toymoban.com/news/detail-814097.html

到了这里,关于java 可变参数 详解(通俗易懂)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java 浅谈ThreadLocal底层源码(通俗易懂)

    目录 一、ThreadLocal类基本介绍         1.概述 :          2.作用及特点 :  二、ThreadLocal类源码解读         1.代码准备 :              1.1 图示              1.2 数据对象             1.3 测试类             1.4 运行测试         2.源码分析 :              2.1 set方法解读

    2024年02月10日
    浏览(71)
  • Java导出PDF(itextpdf)-通俗易懂

    在java开发的过程中会遇到太多太多文档pdf导出,excle导出等业务场景,时隔三个月或半年来一次每一次遇到这样的业务场景对我都是非常痛苦的过程,本文旨在记录工具类使用方法和技术分享。 itextpdf是一个开源的Java库,用于创建和操作PDF文档。使用itextpdf,您可以创建新的

    2024年02月12日
    浏览(37)
  • 全网最通俗易懂的JAVA抽象概念

    抽象类 和 抽象方法 是面向对象编程中的重要概念,用于实现抽象和继承的特性。 抽象类是 不能被实例化 的类,通常用作其他类的基类。 抽象方法是在抽象类中声明但没有具体实现的方法,需要在 子类中 实现具体的功能。 假设我们开了一个汽车玩具厂,现在要造 奔驰 和

    2024年02月11日
    浏览(35)
  • C++ 命名空间、域、缺省参数、函数重载、引用、auto、内联函数的知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏

            从本章开始我们正式进入到C++的内容,对此如果没有学习过C语言的建议先将C语言系统的学习一遍后再来(已经更新完在专栏就能看到)。 话不多说安全带系好,发车啦 (建议电脑观看) 。 附:红色,部分为重点部分;蓝颜色为需要记忆的部分(不是死记硬背哈,

    2023年04月24日
    浏览(77)
  • 从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)

    1.1 什么是不可变集合 ​ 是一个长度不可变,内容也无法修改的集合 1.2 使用场景 ​ 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。 ​ 当集合对象被不可信的库调用时,不可变形式是安全的。 简单理解: ​ 不想让别人修改集合中的内容 比如

    2024年02月07日
    浏览(39)
  • 七大排序算法——冒泡排序,通俗易懂的思路讲解与图解(完整Java代码)

    排序:所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 上述待排序的数中,有两个5。 将 前面 的5标记一个a, 将 后面 的5标记一个b。 通过算法进行排序后,这一组数就有序了, 但是要看两个相同的5的位置是否有改变。

    2024年02月16日
    浏览(28)
  • 七大排序算法——希尔排序,通俗易懂的思路讲解与图解(完整Java代码)

    排序:所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 上述待排序的数中,有两个5。 将 前面 的5标记一个a, 将 后面 的5标记一个b。 通过算法进行排序后,这一组数就有序了, 但是要看两个相同的5的位置是否有改变。

    2024年02月03日
    浏览(39)
  • 七大排序算法——堆排序,通俗易懂的思路讲解与图解(完整Java代码)

    排序:所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 上述待排序的数中,有两个5。 将 前面 的5标记一个a, 将 后面 的5标记一个b。 通过算法进行排序后,这一组数就有序了, 但是要看两个相同的5的位置是否有改变。

    2024年02月16日
    浏览(23)
  • 七大排序算法——归并排序,通俗易懂的思路讲解与图解(完整Java代码)

    排序:所谓排序,就是使一串记录,按照其中的某个或某些的大小,递增或递减的排列起来的操作。 上述待排序的数中,有两个5。 将 前面 的5标记一个a, 将 后面 的5标记一个b。 通过算法进行排序后,这一组数就有序了, 但是要看两个相同的5的位置是否有改变。

    2024年02月15日
    浏览(38)
  • 【Java 基础篇】Java可变参数:灵活处理不定数量的方法参数

    在Java编程中,可变参数是一项强大的功能,它允许你编写更加灵活的方法,接受不定数量的参数。本文将详细解释Java可变参数的用法、语法以及最佳实践。 可变参数是Java 5引入的一项功能,它允许你在方法中传递不定数量的参数。可变参数用三个点( ... )表示,放置在方

    2024年04月17日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包