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.一个参数列表只能出现一个可变参数。