立聪堂德州十三局店 发表于 2024-6-11 19:19:41

简朴相识java中的可变参数

可变参数

1、介绍

在JDK5中提供了可变参数,允许在调用方法是传入任意个参数。可变参数原理就是一个数组存在格式:
修饰符 返回值类型 方法名(数据类型...变量名){}
public int sum(int...num)//表示当前方法可以接受任意个int类型的数据
示例:
当我们想要一个计算两数之和的方法时我们大概会这样完成
public static int sum(int a, int b){
      return a + b;
}
假若我们突然又想要一个求三数之和的方法呢?一样的做法,我们只必要添加一个参数即可
public static int sum(int a, int b, int c){
      return a + b + c;
}
我们想一想这样做是不是有些冗余了呢,要是我们之后还必要其他多数之和的方法是不是要写很多个求和方法?固然不必要,在java中我们可以这样做
public static int sum(int...num){
      int res = 0;

      //因为可变参数本质上是一个数组,我们可以把它当作数组使用
      for (int i : num) {
            res += i;
      }
//      也可以这样写
//      for(int i = 0 ;i < num.length; i++){
//            res += num;
//      }

      return res;
}
通过这个方法我们就可以计算多数之和了,不必要向上面那样进行多次方法重载。
2、可变参数留意细节

1、可变参数只能作为方法的最后一个参数,但其前面可以有或者没有任何参数。
https://img-blog.csdnimg.cn/direct/45695c50d8e745699bf9fdf9319ceb04.png#pic_center
2、可变参数本质上是数组,不能作为方法重载。如果同时出现雷同类型的数组和可变参数的方法,是不能编译通过的。
https://img-blog.csdnimg.cn/direct/ddd75fab326641a498037f030e02fb34.png#pic_center
3、可变参数使用

调用可变参数方法可以给出零到任意多个参数,编译器会将可变参数转换为一个数组,也可以直接转达一个数组。方法内部使用时直接当作数组使用即可。参考1中的示例代码
int x = sum(3, 4, 5, 6, 7, 10);
int y = sum();

System.out.println("x = " + x);
System.out.println("y = " + y);
结果
x = 35
y = 0

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 简朴相识java中的可变参数