从零开始学JAVA之可变参数

下面是一个简单的小程序:

代码如下:

import java.util.Arrays;

class lesson6
{
    public static void main(String[] args)
    {
        int array[]={2,3,1,5,4,6};
        System.out.println(Arrays.toString(array));
        System.out.println(getSum(array));
        //System.out.println(getSum(2,3,1,5,4,6));
    }

static int getSum(int array[])//计算元素之和
    {
        int sum=0;
        for(int i=0;i<array.length;i++)
            sum+=array[i];
        return sum;
    }
}

其中getSum(int array[])方法的声明就限定了它只能接受一维int类型的数组。如果我们现在试图运行第十行(被注释的那行),这样肯定会出错。这种方法的声明方式特别在不知道要传入参数个数时候,缺点比较明显。

从Java5开始,出现了可变参数。特征为:参数个数可变,可以传递0到N个;必须为方法最后一个参数;调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中一数组的形式访问可变参数。

我们将上面代码的注释取消,并将getSum(int array[])改为getSum(int ... array)来实现我们想要的结果。获得结果如下:

由下方的两次输出21可得,getSum(int ... array)成功的接受了2种不同的数据个数的传入。

另外在实际编程中需要特别注意的一点,可变参数必须为方法最后一个参数。大家可以对上面代码进行简单改动进行试验。

(0)

相关推荐

  • java 可变参数详解及实例

    java 可变参数详解 可变参数(Varargs)使程序员可以声明一个接受可变数目参数的方法. 可变参数也是JDK5.0中出现的新特性. 可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象. 但如果将方法中的参数定义为数组,那么只能传递数组对象而不能传递离散的值. 注意,可变参数必须是方法声明中的最后一个参数.一个方法不可能具有两个或两个以上的可变参数. 附上例子程序: public class TestVarargs { private s

  • java中的可变参数使用方法

    java中的可变参数使用方法 可变参数时Java 1.5新增的方法,可变参数方法接收0个或者多个指定类型的参数,可变参数机制通过先创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到数组中,最后将数组传递给方法.如: public class Test{ public int sum(int... args) { int sum = 0; for (int arg : args) { sum += arg; } return sum; } } 可变参数提供了方便,但是使用可变参

  • Java可变参数列表详解

    Java可变参数列表详解 1.接受的传入参数情况: 如public void test(String ...args){...} 1)不使用参数,如test() 2)使用一个或多个参数,如test("1"); test("1","2"); 3)使用数组 test(new String[]{"1","2"}); 2.方法内部访问参数: 在test方法内部,我们可以像使用数组的访问方式一样来访问参数args.如

  • 浅谈Java中的可变参数

    可变参数 可变参数就是一个方法可以接收任意多个参数!例如:fun().fun(1).fun(1,1).fun(1,1,1).你可能认为这是方法重载,但这不是重载,你想想重载能重载多少个方法,而fun()方法是可以传递任何个数的参数,你能重载这么多个方法么? 2.1 定义可变参数方法 public voidfun(int- arr) {} 上面方法fun()的参数类型为int-,其中"-"不是省略号,而是定义参数类型的方式.参数arr就是可变参数类型.你可以把上面代码理解为:public

  • java可变参数使用示例

    Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理.注意:可变参数必须位于最后一项.当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数.因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项. 可变参数的特点: 1.只能出现在参数列表的最后: 2....位于变量类型和变量名之间,前后有无空格都可以: 3.调用可变参数的方法时,编译器

  • Java中支持可变参数详解

    意思就是:参数的个数可以根据需要写,你可以写1个.2个.3个....他们都被保存到一个参数的数组中. 但是这些参有一些约束:他们必须是同类型的,比如都是String字符串类型. 同时,可变参数的函数中的参数的写法也有约束:比如,可变参数的数组必须写在参数的最后,否则程序不知道你的参数到底有多少个. 例子:输出可变参数中的参数值 public class VariableArgument { public static void main(String[] args) { printArgumen

  • Java方法的可变参数类型实例分析

    Java方法中的可变参数类型是一个非常重要的概念,有着非常广泛的应用.本文就以实例形式对此加以分析.具体如下: 一般来说,许多Java初学者在看到下面的这段代码的时候,都会问一个问题:dealArray方法里那三个小点点是什么啊? public class TestVarArgus { public static void dealArray(int... intArray){ } public static void main(String args[]){ } } 这就是本文所要讨论的问题:

  • 从零开始学JAVA之可变参数

    下面是一个简单的小程序: 复制代码 代码如下: import java.util.Arrays; class lesson6 {     public static void main(String[] args)     {         int array[]={2,3,1,5,4,6};         System.out.println(Arrays.toString(array));         System.out.println(getSum(array));       

  • Java 的可变参数方法详述

    目录 一.可变参数方法的定义 二.可变参数方法的调用 三.可变参数方法的重载 四.Object可变参数 一.可变参数方法的定义 首先看下可变参数方法在代码上是如何定义的,如下所示: public static void method1(Integer id, String... names) {       System.out.println("id:" + id + " names:" + names.length); } 通过上面的示例,我们可以看出在定义方法

  • Java Varargs 可变参数用法详解

    Java1.5 提供了一个叫varargs的新功能,就是可变长度的参数. "Varargs"是 "variable number of arguments"的意思.有时候也被简单的称为 "variable arguments". 定义实参个数可变的方法:只要在一个形参的"类型"与"参数名"之间加上三个连续的"."(即"...",英文里的句中省略号),就可以让它和不确定

  • 从零开始学Java之关系运算符

    目录 引言 定义 实例 注意点 举例 总结 引言 ♀ 小AD:明哥,我怎么就那么讨厌刺客,凭什么我就打不过他们,每次把我秒了. ♂ 明世隐:这是因为英雄克制,刺客就是用来对方脆皮的. ♀ 小AD:所以这个叫克制关系? ♂ 明世隐:对,但是刺客却害怕战士型英雄. ♀ 小AD:战士相对被肉克制?肉被射手克制? ♂ 明世隐:差球不多!是一种克制关系,当然不是绝对的,如果段位相差过多,就当我没说.那你跟我什么关系? ♀ 小AD:师徒?大腿? ♂ 明世隐:总之无形之中是不是有一种关系的存在 ? ♀ 小AD

  • Kotlin传递可变长参数给Java可变参数实例代码

    本文研究的主要是Kotlin传递可变长参数给Java可变参数的方法,具体实现代码如下. 定义Java可变参数方法 package com.tcl.john.studymvvm.utils; /** * 调用Java方法的工具类 * Created by ZhangJun on 2017/10/25. */ public class CallJavaUtils { public static int addNumbers(String name, int... args) { int result

  • java可变参数当做数组处理的方法示例

    本文实例讲述了java可变参数当做数组处理的方法.分享给大家供大家参考,具体如下: java可变参数当做数组处理 ava1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理. 注意:可变参数必须位于最后一项. 原因:当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数.因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项. 可变参数的特点:

随机推荐