Java基础(三)——形参个数可变的方法

      从JDK1.5之后,Java允许定义形参个数可变的参数,从而允许为方法指定数量不确定的形参。如果在定义方法时,在最后一个形参的类型后增加三点(...),则表明该形参可以接受多个参数值,多个参数值被当成数组传入。下面程序定义了一个形参个数可变的方法。


package cn.gome.c_object;

public class VarargsTest {

	//======================1.定义形参个数可变的方法======================
	public static void testVarargs(int a, String... books) {
		// book当成数组处理
		for (String book : books) {
			System.out.println(book);
		}
		// 输出整数变量a的值
		System.out.println(a);
	}

	// ======================2.采用数组形参来定义方法======================
	public static void testArray(int a, String[] books) {
		// book当成数组处理
		for (String book : books) {
			System.out.println(book);
		}
		// 输出整数变量a的值
		System.out.println(a);
	}

	public static void main(String[] args) {
		// 采用可变个数形参的方法调用
		testVarargs(5, "周周", "江江", "霄霄");
		// 采用数组形参的方法调用
		testArray(2, new String[]{"周周","江江","霄霄"});
	}
}

     运行结果如下:

     

     从上面的运行结果可以看出,当调用test()方法时,books参数可以传入多个字符串作为参数值,从test()的方法体代码来看,形参个数可变的参数本质就是一个数组参数,也就是说,下面两个方法签名的效果完全一样:


     一、方法定义上


     1.采用可变个数形参来定义方法

        // 定义形参个数可变的方法
	public static void testVarargs(int a, String... books)


     2.采用数组形参来定义方法

     // 采用数组形参来定义方法
     public static void testArray(int a, String[] books)

         二、方法调用上


     这两种形式都包含了一个名为books的形参,两个方法的方法体内都可以把books当成数组处理,但区别是调用两个方法时存在差差别:


     1.采用可变个数形参的方法调用

	// 采用可变个数形参的方法调用
	testVarargs(5, "周周", "江江", "霄霄");

     

     2.采用数组形参的方法调用

        // 采用数组形参的方法调用
	testArray(2, new String[]{"周周","江江","霄霄"});


      对比这两种方法,很显然第一种形式上更加简洁。实际上,即使是采用形参个数可变的形式来定义方法,调用该方法时也一样可以为个数可变的形参传入一个数组。


     最后,需要注意的地方:

     数组形式的参数可以处于形参列表的任意位置,但是个数可变的形参处于形参列表的最后,也就是说,一个方法中最多只能有一个个数可变的形参




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值