简单了解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[i];
//        }

        return res;
}

通过这个方法我们就可以计算多数之和了,不需要向上面那样进行多次方法重载。

2、可变参数注意细节

1、可变参数只能作为方法的最后一个参数,但其前面可以有或者没有任何参数。

可变参数错误1

2、可变参数本质上是数组,不能作为方法重载。如果同时出现相同类型的数组和可变参数的方法,是不能编译通过的。
可变参数错误2

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值