可变参数:
JDK1.5版本出现的新特性。
字面意思:函数中的参数可以变换;
public static void show(int a, int b) //这里参数限定了个数;
{
System.out.println(a + "," + b);
}
调用:
show(3,4);
输出结果:a,b
public static void show1(int[] arr) //若是参数一致则可以传入数组;
{
for (int i : arr) {
System.out.print(i + "\0");
}
System.out.println();
}
调用:
int[] arr = {1,2,3};
show1(arr);
//虽然少定义了多个方法,但是每次都有定义一个数组作为实际参数;
输出结果:
public static void show2(int... arr) //int… 代表int数组类型,直接传递元素即可;
{
for(int i : arr)
{
System.out.print(i + "\0");
}
System.out.println();
}
// 可变参数,其实就是数组参数简写形式,不用每一次都手动定义一个数组对象,
//只要将要操作的元素作为了参数传递即可,隐式将这些参数封装成了数组。
调用:
show2(1,4,5,7);
输出结果:
//方法的可变参数,在使用时注意:可变参数一定要定义在参数列表的最后面。
public static void show3(String str, int... arr)
{
System.out.print(str + "\0");
for (int i : arr) {
System.out.print(i + "\0");
}
System.out.println();
}
调用:
show3("哈哈",1,2,3,4,4);
输出结果:
//还可以传递demo;
public static void show4(String str, Man...man)
{
System.out.print(str + "\0");
for(Man i : man){
System.out.print(i.getAge() + "\0" + i.getName() + "\0");
}
System.out.println();
}
class Man{
private int age;
private String name;
public void setAge(int age)
{
this.age = age;
}
public int getAge()
{
return age;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public Man(int age, String name)
{
this.age = age;
this.name =name;
}
调用:
show4("学号", new Man(20,"小张"), new Man(21,"小任"));
输出结果: