美文网首页
可变参数

可变参数

作者: 阿莫米德 | 来源:发表于2017-02-27 22:05 被阅读0次

可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。
如下所示:print()方法,用于打印接收到的所有int类型的数的和,但是不知道具体有几个int类型的数,这个时候就可以用可变参数。

public class app {
    public static void main(String[] args) {
        print(100,89,3,5);
    }
        public static void print(int...num){
        int sum =0;
        for (int i : num) {
            sum+=i;
        }
        System.out.println(sum);            
    }
}

注意:
1.如果有方法重载,那拥有可变参数的方法会是最后一个被选择的。
2 .可变参数只能位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。

通过反编译,可以看出JAVA底层也是通过建立数组的方式来执行这段代码的。已下是反编译之后的代码,可以看到,传入的参数被创建成了一个新数组,print方法中的参数就是那个新数组。

    public static void main(String args[])
    {
        print(new int[] {
            100, 89, 3, 5
        });
    }
    public static transient void print(int num[])
    {
        int sum = 0;
        int ai[];
        int k = (ai = num).length;
        for (int j = 0; j < k; j++)
        {
            int i = ai[j];
            sum += i;
        }

        System.out.println(sum);
    }

相关文章

  • 元组、字典可变参数

    可变参数 需求: 参数数量不确定,能否接收? args元组可变参数 kwargs字典可变参数 传递可变参数

  • 函数参数

    1、可变参数,参数个数可变 在参数前面加上* 就代表可变参数 可变参数,在函数内部其实就是一个tuple def ...

  • ★10.关于可变参数模板

    可变参数函数模板 可变参数类模板 可变参数函数模板的使用 转发参数包

  • 函数的,参数,变量作用域,递归,匿名函数

    一:函数参数的介绍 1:可变和不可变参数 1.1:必选参数 1.2:默认参数 1.3:可变参数 1.4:关键字参数...

  • Go语言可变参数

    可变参数 参数数量可变的函数称为可变参数函数 在声明可变参数函数时,需要在参数列表的最后一个参数类型之前加上省略符...

  • 可变参数列表

    可变参数列表 数组可以向可变参数传值,反之,不行 可变参数列表作为参数时只能放在参数的最后面 可变参数列表的方法是...

  • python函数回顾

    1.参数的介绍 (1)可变和不可变参数 (2)必选参数 (3)默认参数 (4)可变参数 (5)关键字参数 1.1....

  • Python参数 * 与 ** ,及装包拆包

    (*args)可变参数在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以...

  • 12. 可变参数函数

    12. 可变参数函数 什么是可变参数函数 可变参数函数是一种参数个数可变的函数。 语法 如果函数最后一个参数被记作...

  • Java中的可变参数

    学习笔记:可变参数,仅语法 可变参数又称参数的个数可变,用作方法形参的出现,那么方法的参数个数就是可变的了. 格式...

网友评论

      本文标题:可变参数

      本文链接:https://www.haomeiwen.com/subject/cpetgttx.html