Java随笔-可变个数形参
可变个数形参使用规范和注意事项
**1、使用格式:methodName(数据类型…变量名) **
public static void show(String...str){
for (int i=0;i<str.length;i++){
System.out.println(str[i]);
}
}
2、当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个,。。。
public static void main(String[] args) {
show("A","B","C");
}
//重载
public static void show(String...str){
for (int i=0;i<str.length;i++){
System.out.println(str[i]);
}
}
展示:
注意:
从上面的代码和显示的结果可以看出,可变形参实际上是一个数组,我们再调用的时候就把它作为数组调用即可。
3、 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
//方法一
public static void show(String str){
System.out.println(str);
}
//方法二
public static void show(String...str){
for (int i=0;i<str.length;i++){
System.out.println(str[i]);
}
}
public static void main(String[] args) {
show("test");
show("A","B","C");
}
在执行上述的main方法之后得到的结果如下:
在main方法中show(“test”)方法,执行的是方法一,show(“A”,“B”,“C”)执行的是方法二,只有当方法一不存在的时候,show(test)才会执行方法二可变形参的方法,这里面存在一个优先级的问题。
4、可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。换句话说,二者不能共存。
如上可变形参的方法和使用数组的方法不构成重载,两者不能够共存,是因为在Java5.0之前没有可变形参这个概念,那时就是使用数组来传入多个参数,所以可变形参实际上就是数组,在访问时也和访问数组中的元素一样。
5、可变个数形参在方法的形参中,必须声明在末尾
public static void show(int i,String...str){
System.out.println("Pre data:"+i);
System.out.println("Post data:"+str);
}
6、可变个数形参在方法的形参中,最多只能声明一个可变形参。
总结:
/**
* 可变个数参数的问题
* 1、jdk5之后加入的新特性
* 2、具体使用及注意方法
* 2、1 格式:methodName(数据类型...变量名)
* 2、2 当调用可变个数形参的方法时,传入的参数个数可以是:0个,1个,2个,。。。
* 2、3 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
* 2、4 可变个数形参的方法与本类中方法名相同,形参类型也相同的数组之间不构成重载。换句话说,二者不能共存。
* 2、5 可变个数形参在方法的形参中,必须声明在末尾
* 2、6 可变个数形参在方法的形参中,最多只能声明一个可变形参。
*/