java提供了可变参数这个语法。
可变参数本质为数组。
一般可变参数应用于形参中。用于接收实参。
此时实参可以有多种形式。
一种是最正常的,实参为数组名。
public class Date1 {
public void one(int ... arr)
{
int sum=0;
for (int x:arr){
sum+=x;
}
System.out.println(sum);
}
public static void main(String[] args) {
int[]arr1= new int[]{0,2,4,5,7,8};
Date1 date1=new Date1();
date1.one(arr1);
}
}
一种是匿名操作。(这种没将其创建的内存分配给数组变量再去使用,而是直接分配好内存就直接使用的就被称为匿名操作。
它有个缺点就是在匿名操作完后 ,其所分配的内存就会直接销毁(没引用指向所以会直接销毁),不能再被使用了)
public class Date1 {
public void one(int ... arr)
{
int sum=0;
for (int x:arr){
sum+=x;
}
System.out.println(sum);
}
public static void main(String[] args) {
Date1 date1=new Date1();
date1.one(new int[]{0,2,4,5,7,8});//匿名操作
}
}
一种是实参为多个相同类型的数据。
public class Date1 {
public void one(int ... arr)
{
int sum=0;
for (int x:arr){
sum+=x;
}
System.out.println(sum);
}
public static void main(String[] args) {
Date1 date1=new Date1();
date1.one(1,2,3,4);
}
}
我们除此之外还要注意一些可变参数的细节:
1.可变参数可以和非可变参数放在一块,但必须保证可变参数在最后。
2.一个参数列表只能出现一个可变参数。