赞
踩
在Java的学习过程当中,有些小伙伴可能会遇到这样的问题,那就是如何能在不确定方法会接收到几个参数的时候来定义这个方法呢?
例如最简单的定义一个加法方法
虽然方法可以通过重载来相同名字不同参数的方法,
如
public int add(int a,int b){
return a+b;
}
public int add(int a,int b,int c){
return a+b+c;
}
这样我们在两个数相加和三个数相加的时候都可以调用add方法,
但是如果我们想要三个数四个数相加呢,或者成百上千个数相加呢,
这样我们不可能重载成百上千次add方法,这时候我们就可以用Java的可变参数功能。
可变参数是JDK1.5之后才有的新特性
当方法的参数列表数据类型确定,但个数不确定的时候可以使用可变参数,
定义格式为:
修饰符 返回值类型 方法名(参数类型…变量名){}
可变参数的原理:
可变参数底层就是一个数组,根据传递参数的个数不同,来创建一个不同长度的数组,来存储这些参数,变量名就是数组名。
注意:可变参数个数可以为0,可以不传递任何参数进入方法。
如,add()方法可以写为
public int add(int...arr){
int sum=0;
for(int i=0;i<arr.length;i++){
sum+=arr[i];
}
return sum;
}
这样add()方法就可以计算任何个int类型的数相加了
在定义可变参数的方法中也可以其他参数,但可变参数要定义到最后
如
public int add(String s,int...arr){
int sum=0;
for(int i=0;i<arr.length;i++){
sum+=arr[i];
}
return s+"为:"+sum;
}
如果未知个数的参数类型不同,那么可以把可变参数类型定义为Object
例如
public void print(Object...obj){
for (int i = 0; i < obj.length; i++) {
System.out.println(obj[i]);
}
}
调用方法
print(123,"你好",'A',true,1.00);
控制台打印结果为:
123
你好
A
true
1.0
这就是可变参数的使用方法。
有其他问题可以私信问我。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。