可变参数

可变参数

  • 在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数的数据类型一致,那么我们可以简化成如下格式:
修饰符 返回值类型  方法名(参数类型... 形参名){
	//...
}
  • 其实上面的格式完全等价于:
修饰符 返回值类型  方法名(参数类型[] 参数名){
    //....
}
  • 只是后面的写法,在方法调用时,必须传递一个数组类型,而前者可以直接传递参数数据。
  • JDK1.5之后,出现的这种简化操作。"…"用在参数上,我们称之为可变参数。
  • 同样是代表数组,但是在方法调用这个带有可变参数时,不用创建数组,而是直接将数组当中的元素作为实际参数进行传递,其实编译生成的class文件,本质是将这些元素封装到了一个数组当中,再进行数据传递,这些动作都在编译生成.class文件的时候,自动完成了。
    代码例子如下:
   public static void add(int... arr) {
        //System.out.println(arr);// [I@1b6d3586 底层就是一个数组
        //System.out.println(arr.length);//0
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        System.out.println(sum); // 30
    }

备注:

  • 可变参数的注意事项:
    1. 一个方法的参数列表,只能有一个可变参数
    2. 如果方法的参数有多个,类型不止一种,那么可变参数必须写在参数列表的末尾位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值