可变参数

从JDK1.0开始几乎每一个版本都会提供许多的新特性,例如,在JDK之中有以下几个代表性的版本

  ·JDK1.2:推出了轻量级的JavaGUI设计组件包 Swing

  ·JDK1.5:退出了心得程序结构的设计思想

  ·JDK1.8:Lambda表达式、接口的定义加强


现在为止已经接触过了一些新特性,例如:自动装箱与拆箱、swith对String的判断支持。

自动装箱:Integer x=10;

                 Dobule y=20;

可变参数

现在假设有这样一个要求:要求设计一个方法用于计算任意个数的整数的相加结果,预算这种开发需求在最早的时候只能够通过数组的方式来实现。

范例:最初的实现模式

 

public class TestDemo {

	public static void main(String[] args) {
	System.out.println(add(new int[] {1}));
	System.out.println(add(new int[] {1,2,3}));
	System.out.println(add(new int[] {1,2,3,4,5,6,7,8}));
	}
/**	
 * 实现任意个数的数据的相加处理操作
 * @param data 要进行相加操作的数据
 * @return 返回的讴歌数据的相加结果
 */
	public static int add(int[]data) {
		int sum=0;
		for(int x=0;x<data.length;x++) {
			sum+=data[x];
		}
		return sum;
	}

} 

但是这种最初的实现方式本身会存在有缺陷,

我现在需要你设计的并不是一个数组,而是任意多个参数

所以在JDK1.5之前该操作根本就无法使用,

而从JDK1.5后追加了一个可变参数,也就是说这个时候的方法定义格式:

public [static] [final] 返回值 方法名称 (参数类型 ... 参数名称){ }

这个参数上使用的“...”实际上就明确描述了一个数组的结构。   

  

public class TestDemo {

	public static void main(String[] args) {
	System.out.println(add());//随意你传数据的个数
	System.out.println(add(new int[] {1}));
	System.out.println(add(1,2,3));//可变参数可以接收参数和数组
	}
/**	
 * 实现任意个数的数据的相加处理操作
 * @param data 要进行相加操作的数据
 * @return 返回的讴歌数据的相加结果
 */
	public static int add(int ...data) {//本身还是一个数组
		int sum=0;
		for(int x=0;x<data.length;x++) {
			sum+=data[x];
		}
		return sum;
	}

} 

现阶段可以通过一些java中的类库观察到使用,后期开发的时候也会不定期出现在你自己写的代码之中,总之原则:参数个数不确定,随意由用户传递。

注意点:如果要传递多类参数,可变参数写在最后 

public static int add(String msg,int ...data) 
public static void main(String[] args) {
	System.out.println(add("你好"));//随意你传数据的个数
	System.out.println(add("你好",new int[] {1}));
	System.out.println(add("你好",1,2,3));//可变参数可以接收参数和数组
	}

因为可变参数都是靠逗号的 不知道到那个逗号才是String

以后如果要想编写更好的一些程序方法,可变参数是一个很常见的组合

一个方法只能设置一个可变参数。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值