- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java可变参数
Java语言在JDK1.5中首次推出Java可变参数,variable arguments,或简称varargs。这一新语言特征给软件开发人员在编写方法重载时提供了方便和灵活性。但可变参数的应用并不像想象的那么简单,使用时有其特殊要求和局限性。
重载的最好例子
读者朋友可能有这样的编程经历:在编写一个方法时,其参数随着程序运行的条件而变化,在编译期间无法确定。具体地讲,例如编写一个打印参加聚会party的程序,其中方法printInvitation()将根据作为参数的参加人姓名,打印邀请卡。但这个参数的数量事先并不确定。当然可以编写许多重载的方法来解决这个问题,如:
void printInvitation(String name);
void printInvitation(String name1, String name2);
void printInvitation(String name1, String name2, String name3);
...
问题是编写多少个重载的方法才可以解决给所有参加者打印邀请卡?也许需要改变您的程序设计,而使用数组或者链接表了。
应用可变参数可以方便、灵活地解决这类问题。例如:
//完整程序存在本书配套资源目录Ch12名为VarargsTest.java
void printInvitation(String...names) {
for (String name : names) {
makeCard(name); //调用方法按照姓名打印邀请卡
System.out.println(Recording info: invitation card has been printed for + name);
}
}
这里,(String...names)便是可变参数。它包括从0到任意个相同类型的参数。在编译期间,这个可变参数将被转换为字符串数组形式,即:
void printInvitation(String[] names)
如下是调用这个方法的例子:
printInvitation(李刚, David Smith);
printInvitation(Greg Wu, Paul Nguyen, Liu Wei, 张新);
printInvitation(); //无参数
当在无参数情况下调用这个方法时,将不执行任何这个方法中的代码。
如下是运行结果:
Recording info: invitation card has been printed for 李刚
Recording info: invitation card has been printed for David Smith
Recording info: invitation card has been printed for Greg Wu
Recording info: invitation card has been printed for Paul Nguyen
Recording info: invitation card has been printed for Liu Wei
Recording info: invitation card has been printed for 张新
怎样工作
Java可变参数也不神秘。实际上,JVM将根据程序中调用这个方法时提供的参数数量,来装载和运行它。
可变参数的简单语法格式为:
methodName([argumentList], dataType...argumentName);
其中:
argumentList——普通参数,可选项。
dataType——数据类型或者类。自动转换成dataType代表的数组。
...——Java的操作符。表示0到多个。必须是3个点。
argumentName——参数名。
注意,可变参数必须在最后。
下面是应用可变参数的更多例子:
// 完整程序存在本书配套资源目录Ch12名为VarargsTest.java
public static int sumInts(int...numbers) { //可变整数数组类型参数
int sum = 0;
for (int num : numbers)
sum +=num;
return sum;
}
再如:
public voi
您可能关注的文档
- HADR最佳实践详解.doc
- hanyiwen-20140523修改_new详解.doc
- hanyiwen-20140523修改详解.doc
- HC6800-EM3-V2.2C实验指导书2003详解.doc
- HFSS的天线课程设计_new详解.doc
- HI-RTK操作步骤(新)_new详解.doc
- HI-RTK操作步骤(新)详解.doc
- HJ-002锅炉受热面管道焊接作业指导书_new详解.doc
- HJ-002锅炉受热面管道焊接作业指导书详解.doc
- HJ-008凝汽器焊接指导书_new详解.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)