JAVA--可变长参数

时间:2023-03-09 10:04:28
JAVA--可变长参数

可变长参数:

可变长参数可以接受任意个数的实参,形参实际上是一个数组。

语法形式:

方法名称(类型 参数1,类型 参数2,类型...可变长参数)

*可变长参数一定是方法的最后一个参数

 public void summ(double...num,String test){//可变长参数必须放在最后
System.out.println("=====");
}

JAVA--可变长参数

在可变长参数的方法中,可以将可变长参数当成数组使用。可变长参数基本实例:

 package test01;

 public class ChangeB {

 /**

  * @param Change

  */

 public double summ(double...num){

 double summ=0;

 for(int i = 0;i < num.length; i++){

 summ += num[i];

 }

 return summ;

 }

 public static void main(String[] args) {

 ChangeB ch = new ChangeB();

 double total = ch.summ(1,2,3);

 System.out.println("bianchang:"+total);

 }

 }

可变长参数方法的调用,改变上述调用方法:

 ChangeB ch = new ChangeB();//实例化
System.out.println("不传参数调用:"+ch.summ());
System.out.println("传入一个参数的调用:"+ch.summ(6.6));//值为6.6
System.out.println("传入二个参数的调用:"+ch.summ(1.3,2.5));//值为3.8
System.out.println("传入三个参数的调用:"+ch.summ(1.1,2.2,3.4));//值为6.7

在使用可变长参数方法是还需要注意几点:

在一个类中同名方法一个为单参数,一个为可变长参数时,如果实参只传入一个参数时匹配单参数和可变长参数2个方法,单实际上只选择单参数方法,举例说明:

 package test01;

 public class ChangeB {

 /**

  * @param Change

  */

 public double summ(double...num){//可变长参数方法

 double summ=0;

 for(int i = 0;i < num.length; i++){

 summ += num[i];

 }

 System.out.println("可变长");//证明调用的是单参数还是可变长参数

 return summ;

 }

 public double summ(double num){//单参数方法

 double summ1=0;

 summ1 = num;

 System.out.println("单参数");//证明调用的是单参数还是可变长参数

 return summ1;

 }

 public static void main(String[] args) {

 ChangeB ch = new ChangeB();//实例化

 System.out.println(ch.summ(9.8));

 }

 }

结果:

单参数

9.8

传入的实参,调用的方法不能跟2个方法匹配(可变长):

情况1:

 public void summ(double...num){//可变长参数方法1

 System.out.println("=====");

 }

 public void summ(double num1,double...num){//可变长参数方法2

 System.out.println("=====");

 }

 public static void main(String[] args) {

 ChangeB ch = new ChangeB();//实例化

 ch.summ("sss");//编译错误处

 }//

情况2:(这个就更是错的)

 public void summ(double...num){//可变长参数方法1,错误

 System.out.println("=====");

 }

 public void summ(double...num1){//可变长参数方法2,错误

 System.out.println("=====");

 }

 public static void main(String[] args) {

 ChangeB ch = new ChangeB();//实例化

 ch.summ("sss");

 }//

 

相关文章