Java基础——方法的可变参数

可变参数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
相关文章
相关标签/搜索