黑马程序员技术交流社区
标题:
可变参数
[打印本页]
作者:
霍明波
时间:
2012-9-18 15:02
标题:
可变参数
本帖最后由 霍明波 于 2012-9-18 15:04 编辑
package cn.itcast.day1;
public class StaticImport {
public static void main(String[] args){
add(1,2);
}
public static int add(int x,int...args){
int sum = x;
for (int i=0;i<args.length;i++) {
sum +=args
;
}
return sum;
}
// public static int add(int ...args){
// int sum = 0;
// for(int y=0;y<args.length;y++){
// sum += args[y];
// }
// return sum;
// }
//
}
老师讲的上面那种方法一直不明白,总是感觉多加了一遍int x;后来自己写了下面的试了一下,发现上面的方法int x没有算进数组里,
但是对于可变参数那里有用到,毕老师好像没提过,
是不是版本升级后,原来版本的
数组型的参数
都变成这种
可变参数
了呢。在什么地方可以用到呢。
作者:
张 涛
时间:
2012-9-18 15:10
以前需要可变参数的地方都是用object数组实现,现在的1.5的特性中, 也都兼容以前的。也就是在使用可变参数的地方,如果使用object数组作为参数,会用1.4的特性方法执行。
作者:
chjxs
时间:
2012-9-18 22:08
本帖最后由 chjxs 于 2012-9-18 22:17 编辑
这里的
sum=x;
sum就是临时的变量。
程序可以考虑用递归。。
作者:
冯心程
时间:
2012-9-19 02:32
当参数有多个或者个数不确定的时候,参数需要定义成数组
但是定义数组会很麻烦,JDK1.5以后提供了新方法解决这个问题就是用...可变参数
其实可变参数还是数组
,它是直接定义数组的简写形式,因为可变参数不用直接定义数组对象,
只要将要传递的元素作为参数传递就行,隐式的将你传递的参数封装成了数组
封装的动作不需要你做 JVM已经在内部帮你做好了。
可变参数需要定义在参数列表的最后面。。
你说那个public static int add(int x,int...args)相当于两个参数 一个是int x, 一个是数组, int x 不在可变参数内。他俩没啥直接关系
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2