java可变参数列表语法_可变参数的定义与使用_Java语言程

可变参数的定义与使用_Java语言程

4.9.1 可变参数的定义与使用

可变参数的简单语法格式为:

b74f135170a899607b876c47ba11122e.png

其中,argumentList为普通参数,可选项;dataType为数据类型或者类;自动转换成dataType[]类型的数组;…为Java的操作符,表示0到多个,必须是3个点;argumentName为参数名。

注意:一个方法中,只能定义一个可变参数,而且可变参数必须位于最后一项。

【例4-32】 方法中可变参数是基本类型的举例。

fe41627ef634b57e5b2e63f796420ebf.png

2e0b0effc46941a8439a051f20a95a02.png

程序运行结果:

(注:第一行是空行)

ec379b53fb0cd25cc6e2b1f15e676016.png

思考与分析:(1)方法test(int...objects)中的参数是可变参数。它的参数个数不确定,但都是int类型。调用方法的实参个数分别是0个、1个和5个。

(2)for(int i:objects)是增强for语句。相当于for(k=0,i=objects[k];k<objects.length;k++,i=objects[k]){}。

模仿例4-32:编程完成具有可变参数的求最大值方法。(www.guayunfan.com)

【例4-33】 可变参数是引用类型的举例。

34916b7458990a7f31a805c7de3fbbcc.png

程序运行结果:

99f897fabaed6eb233f63efe964904d9.png

思考与分析:(1)可变参数列表中同时使用基本类型与包装类。

(2)可变参数==数组参数?在带可变参数的方法体中,读取可变参数列表就是以数组的方式来读取;带可变参数的方法可以传入一个数组参数,但带数组参数的方法却不能传入可变参数。new Integer[]{1,2,3,4,5}是包装类的数组对象,可作实参,但数组变量本质上是数组对象的引用值,若打印的话只能是对象的字符串,不能作实参。

模仿例4-33:编程使用可变参数,打印参加聚会人员的名单。

【例4-34】 可变参数的类型可以是类,但调用方法的实参是可变参数类型的子类。

590153cbae88b6c71f70390b24d52b1b.png

3804c9d709b01948a8638b7d2be6bf66.png

程序运行结果:

0a597bb109e7bd1d8fc43bd3459998a2.png

思考与分析:(1)数组对象可作实参,但必须转换成Object类型。数组变量不能传递给可变参数。这样,String[]name=new String[]{″张三″,″李四″,″王五″};listNameInParty(″倪二″,name);语句添加到程序中,会出现编译错误。

(2)由于可变参数是Object类型,所以Object类的子类对象都是合法的实参,这样,基本类型自动装箱(转换成)相应的包装类传给形参。有关自动装箱内容在6.6.3节中讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值