学习任务:

视频学习Java变长参数

动手定义变长参数方法

动手编程使用变长参数

1)变长参数方法的定义

Java中使用变长参数可以解决参数个数不确定的需求,格式如下所示:

修饰符 返回值类型 方法名(数据类型… 变量名) {  }

接下来我们就来按照上述格式,定义一个包含可变参数的方法,如下所示:

// 包含可变参数a的方法
public static void test(int... a) {
    System.out.println(a);              
}

变长参数a是什么类型呢?从定义上看它的数据类型是int型,该方法可以接收一个或多个int型的数据。

对于a的类型可以尝试打印参数a。

测试代码如下:

/**
 * 	变长参数
 * 
 * @author 攀博课堂(www.pbteach.com)
 *
 */
public class ArrayDemo5 {

	
    public static void main(String[] args) {
    	//变长参数方法测试
    	test(1,2,3);
    }
    // 包含可变参数的方法
    public static void test(int... a) {
    	System.out.println(a);
    }
    
}

输出:

[I@15db9742

从输出结果可以看出它是一个数组类型,所以变长参数的类型是数组类型,可以遍历数组的方法去遍历变长参数。

/**
 * 	变长参数
 * 
 * @author 攀博课堂(www.pbteach.com)
 *
 */
public class ArrayDemo5 {

	
    public static void main(String[] args) {
    	//变长参数方法测试
    	test(1,2,3);
    }
    // 包含可变参数的方法
    public static void test(int... a) {
    	System.out.println(a);
    	for (int i = 0; i < a.length; i++) {
			System.out.println(a[i]);
		}
    }
    
}

输出:

[I@15db9742
1
2
3

2)注意事项

在使用变长参数定义方法时要注意:

一个方法只能有一个变长参数。

如果一个方法有多个参数且包含可变参数那么可变参数必须放在最后。

  // 下边的方法定义错误
  public static void test(int... a,String b) {
      System.out.println(a);
      for (int i = 0; i < a.length; i++) {
      	System.out.println(a[i]);
      }
  }
  //下边的方法定义正确
   public static void test(String b,int... a) {
      System.out.println(a);
      for (int i = 0; i < a.length; i++) {
      	System.out.println(a[i]);
      }
  }

下边使用变长参数定义的一个方法求若干个整数的和,代码如下:

/**
 * 	变长参数
 * 
 * @author 攀博课堂(www.pbteach.com)
 *
 */
public class ArrayDemo6 {

    public static void main(String[] args) {
    	//变长参数方法测试
    	long sum = sum(1,2,3);
    	System.out.println(sum);
    }
    //求若干整数的和
    public static long sum(int... a) {
    	long sum=0;
    	for (int i = 0; i < a.length; i++) {
    		sum+=a[i];
		}
    	return sum;
    }
    
}

提问-攀博课堂
我要提问 不会就问,有效沟通
关注公众号,加入微信群交流提问。 攀博课堂官方公众号
问答列表,查看本知识点所有问题