我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

目录

一、概述:

二、格式:

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

四、代码演示:

        演示规范①~③:

        演示规范④:

        演示规范⑤:

        课堂练习:

        代码演示:

        输出结果:

五、英文版本讲解:


一、概述:

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

二、格式:

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

                //方法体

        }

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

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

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

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

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

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

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

四、代码演示:

        演示规范①~③:

package csdn.varparameter;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;    }}

        输出结果:

  

        演示规范④:

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;    }}

        输出结果:        

        演示规范⑤:

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

        课堂练习:

         需求:利用可变参数,在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 + "分";    }}

        输出结果:

五、英文版本讲解:

        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://blog.csdn.net/TYRA9/article/details/128196406

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

matlab中wavedec2,wavedec2函数详解[通俗易懂]

wavedec2函数是Matlab中用于对二维信号进行小波分解的函数。这个函数的输入参数包括三个:- x:要进行小波分解的二维信号- n:小波分解的层数,即要进行几层的分解- wavelet:选择的小波函数,可以是'DbN'、'biorN.
2023-09-20

c语言指针用法及实际应用详解,通俗易懂超详细

C语言的指针是一种非常重要的概念,它可以实现很多高级的编程技巧。本文将详细介绍C语言指针的用法及实际应用,并尽可能用通俗易懂的语言进行解释。一、指针的概念指针是一个变量,它存储的是一个内存地址。通过指针,我们可以直接访问该内存地址上存储的数
2023-09-09

Java中可变长度参数代码详解

到J2SE1.4为止,一直无法在Java程序里定义实参个数可变的方法——因为Java要求实参(Arguments)和形参(Parameters)的数量和类型都必须逐一匹配,而形参的数目是在定义方法时就已经固定下来了。尽管可以通过重载机制,为
2023-05-30

C++ 函数的默认参数和可变参数详解

c++++ 默认参数允许为函数参数设置默认值,而在可变参数中,可以为函数提供任意数量的参数。具体而言:默认参数:允许在函数声明时为参数指定默认值,在调用时如果没有提供值则使用默认值。可变参数:使用 ... 表示,允许函数接受任意数量的参数,
C++ 函数的默认参数和可变参数详解
2024-04-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录