可变个数的形参的方法:
1、 格式,对于方法的形参:数据类型。。。形参名。
2、可变个数的形参的方法与同名的方法之间构成重载。
如下两段程序所示:三个方法构成重载。因为定义了可变个数的形参的方法,所以前两个方法可以省略。
public void sayHello() {
System.out.println("Hello world");
}
public void sayHello(String str1) {
System.out.println("Hello"+str1);
}
public void sayHello(String ...args) {
for(int i=0;i<args.length;i++) {
System.out.println(args[i]);
}
}
public int getSum(int i,int j) {
return j+j;
}
public int getSum(int i,int j,int k) {
return i+j+k;
}
public int getSum(int ...args) {
int sum = 0;
for(int i=0;i<args.length;i++) {
sum+= args[i];
}
return sum;
}
3、可变个数的形参在调用时,个数从零开始,到无穷多个都可以。
4、使用可变多个形参的方法与使用数组是一致的
public void sayHello(String ...args) {
for(int i=0;i<args.length;i++) {
System.out.println(args[i]);
}
}
public void sayHello(String[] args) {
for(int i=0;i<args.length;i++) {
System.out.println(args[i]);
}
}
5、若方法中存在可变参数的形参,那么一定要声明在最后。
public void sayHello(int j,String ...args) {
for(int i=0;i<args.length;i++) {
System.out.println(args[i]);
}
}
完整代码:
public class Temp {
public static void main(String[] args) {
Temp t = new Temp();
t.sayHello(new String[] {"Hello China","Hello Java"});
// t.sayHello("Hello Baby","Hello World","Hello FPGA");
}
public void sayHello(String[] args) {
for(int i=0;i<args.length;i++) {
System.out.println(args[i]);
}
}
// public void sayHello(int j,String ...args) {
// for(int i=0;i<args.length;i++) {
// System.out.println(args[i]);
// }