Java---形参个数可变的方法

1>从JDK 1.5以后,Java允许定义形参个数可变的参数,从而允许为方法指定数量不确定的形参。

定义形参个数可变的方法:

2>定义参数个数可变的方法:在方法最后一个形参的类型后面增加三个点(...),则表明该形参可以接受多个参数值,多个参数值被当成数组传入。

3>测试:

package com.varpara.demo;

public class VarParameterDemo {
	/*
	 *形参个数可变的方法
	 *从jdk 1.5以后,java允许形参个数可变的参数,从而为方法指定数量不确定的形参。 
	 */
	public static void testVar(int n,String... books){
		for(String book: books){
			System.out.println(book);
		}
		System.out.println(n);
	}

	public static void testArray(int n,String[] books){
		for(String book: books){
			System.out.println(book);
		}
		System.out.println(n);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		System.out.println("-------------形参个数可变的方法--------------");
		String [] books={"C++","JAVA","C#"};
		//调用形参个数可变的方法
		testVar(3, "C++","JAVA","C#");
		System.out.println("--------------");
		//调用形参个数可变的方法时,可以为个数可变的参数传入一个数组
		testVar(3, books);
		
		System.out.println("-------------形参为数组的方法--------------");
		testArray(3, books);
	}

}

运行结果:

-------------形参个数可变的方法--------------
C++
JAVA
C#
3
--------------
C++
JAVA
C#
3
-------------形参为数组的方法--------------
C++
JAVA
C#
3

形参个数可变的参数本质就是一个数组参数,也就是说public static void testVar(int n,String... books)与public static void testVar(int n,String[] books)方法签名的效果完全一样。

区别是调用这两个方法时存在差别,对于形参个数可变的方法,调用方法时更加简洁,如下所示:

		//调用形参个数可变的方法
		testVar(3, "C++","JAVA","C#");


传入books的实参值无须是一个数组,但是如果采用数组形参来声明方法,调用时则必须传给该形参一个数组,如下所示:

		testArray(3,new String[]{"C++","JAVA","C#"});


对比这两个方法,明显第一种方式更加简洁。

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值