可变参数

本文详细介绍了Java 1.5引入的可变参数特性,它允许我们在定义方法时接受不定数量的相同类型参数。通过示例展示了如何定义和调用可变参数方法,以及其与数组的区别。可变参数在方法参数列表中只能出现一次,并且必须位于最后。文章还提到了可变参数在实际应用中的便利性,特别是在参数数量不确定的情况下。同时,展示了如何使用可变参数进行动态参数传递,并提供了一个计算整数之和的例子。
摘要由CSDN通过智能技术生成

在JDK1.5之后,如果我们定义一个方法需要接收多个参数,并且多个参数类型一致,我们可以对其简化称如下格式:

修饰符 返回值类型 方法名(参数类型... 形参名){   }

其实这个书写完全等价于:

修饰符 返回值类型 方法名(参数类型[] 形参名){   }

只是后面这种定义,在调用时必须传递数组,而前者可以直接传递数据即可。

JDK1.5以后。出现了简化操作。...用在参数上,称之为可变参数

同样是代表数组,但是在调用这个带有可变参数的方法时,不用创建数组(这就是简单之处),直接将数组中的元素作为实际参数进行传递,其实编译成的class文件,将这些元素先封装到一个数组中,再进行传递。这些动作都在编译.class文件时,自动完成了。

使用前提:当方法的参数列表数据类型已经确定,但是参数的格式不确定时,就可以使用可变参数。

使用格式:定义方法时使用,上式。

public static void main(String[] args) {
    int sum = add(10,20,30,40,50,60,70,80,90);
    System.out.println(sum); // 450
}
// 定义一个方法,计算(0-n)个整数的和
// 已知:数据类型确定,int;未知:参数个数
private static int add(int... arr) { // 底层就是数组,,编译时创建,非运行时创建
    System.out.println(arr); // [I@1b6d3586 ,打印的是数组的地址值
    System.out.println(arr.length); // 9
    int sum = 0;
    for (int i:arr) {
        sum += i;
    }
    return sum;
}

注意事项:

1.一个方法的参数列表,只能有一个可变参数;

2.如果方法的参数有多个,那么可变参数必须写在参数列表的末尾。

可变参数的特殊写法:传入Object类型(可以任意类型)

// 可变参数的特殊/终极写法
private static void method(String str,Object... obj) {
    
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值