可变参数java
解决参数个数不肯定引发的问题。数组
可变参数的本质是一个数组,编码示例编码
public class ChangedMethod { public static void main(String[] args) { double[] pay=new double[]{1,2,3}; double sunPay1=getSun1(pay); System.out.println("sunPay1:"+sunPay1); double sunPay2=getSun2(pay); System.out.println("sunPay2:"+sunPay2); double sunPay3=getSun3(pay); System.out.println("sunPay3:"+sunPay3); double sunPay4=getSun4(2,pay); System.out.println("sunPay4:"+sunPay4); } static double getSun1(double[] arr) { double sum=0.0; for(double price:arr){ sum += price; } return sum; } //可变参数 static double getSun2(double... arr) { double sum=0.0; for(double price:arr){ sum += price; } return sum; } static double getSun3(double[] arr) { double sum=0.0; for(int index = 0; index<arr.length; index++){ sum += arr[index]; } return sum; } //为避免歧义,可变参数只能做为最后一个参数 static double getSun4(double a,double... arr) { double sum=0.0; for(int index = 0; index<arr.length; index++){ sum += arr[index]; } return sum*a; } }
可变参数的本质是一个数组,编码示例运行结果spa
sunPay1:6.0 sunPay2:6.0 sunPay3:6.0 sunPay4:12.0
可变参数必须做为最后一个参数编码示例code
public class ChangedMethod_02 { public static void main(String[] args) { double sun1=getSun1(1,2,3,4); System.out.println("sun1:"+sun1); double sun2=getSun2(1,2,3,4); System.out.println("sun2:"+sun2); double[] pay=new double[]{1,2,3,4}; double sunPay1=getSun1(pay); //不能用方法getSun2(double a, double... arr) System.out.println("sunPay1:"+sunPay1); } static double getSun1(double... arr) { double sum=0.0; for(double price:arr){ sum += price; } return sum; } static double getSun2(double a, double... arr) { double sum=0.0; for(double price:arr){ sum += price; } return sum*a; } }
可变参数必须做为最后一个参数编码示例程序运行结果get
sun1:10.0 sun2:9.0 sunPay1:10.0