- 浏览: 525300 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (114)
- C基础 (1)
- C指针 (0)
- C语言库函数相关 (1)
- Linux (2)
- Linux网络编程 (1)
- PostgreSQL (0)
- Redis (2)
- Java Web (2)
- JAVA基础 (35)
- Ubuntu (8)
- Android (2)
- MySQL (3)
- 日志 (1)
- 书虫 (1)
- 数据结构 (0)
- 算法 (0)
- 开发工具 (1)
- 转载 (13)
- 英语 (18)
- tomcat启动脚本分析 (3)
- Oracle基础 (4)
- tomcat源码分析 (3)
- tomcat (1)
- Java相关 (1)
- Oracle基本原理--Oracle体系结构 (0)
- Oracle基本原理--表 (0)
- Oracle基本原理--索引 (0)
- Oracle基本原理--事务 (0)
- Oracle开发--SQL (1)
- Oracle基本原理--PL/SQL (0)
- Oracle基本原理--常用函数 (0)
- Oralce管理--用户及权限管理 (0)
- Oracle管理--安装调试 (0)
- Oracle管理--备份恢复 (0)
- Oralce管理--数据迁移 (0)
- Oracle管理--闪回 (0)
- Oracle管理--故障处理 (0)
- Oracle优化原理--统计信息 (0)
- Oracle优化原理--执行计划 (0)
- Oracle优化原理--诊断工具 (0)
- Oracle优化原理--深入理解表 (0)
- Oracle优化原理--深入理解索引 (0)
- Oracle优化原理--表连接原理 (0)
- Java--OOP (0)
- Java--异常 (0)
- Java--泛型 (0)
- Java--集合 (0)
- Java--IO (0)
- Java--枚举类型 (0)
- Java--注释 (0)
- Java--多线程 (0)
- Java--XML (0)
- Java--JDBC (3)
- Servlet (0)
- JSP (0)
- JSTL (0)
- 设计模式 (0)
- DAO与MVC (0)
- Javascript (2)
- Ajax (0)
- JQuery (0)
- HTML/CSS (0)
- 前端相关 (1)
- HTTP (0)
- TCP/IP (0)
- GO基础 (0)
最新评论
-
jsonmong:
推荐一个开发平台,采用的是插件化的设计思想,效果很不错的。ht ...
构建Java Web开发环境 -
wxm198427:
首先表示辛苦了!我想问个问题:我的是windows 7 x64 ...
Oracle 11g R2 for Win7旗舰版(64位)的安装步骤 -
握着橄榄枝的人:
我之前按照你的update mysql.user set pa ...
Windows7下MySQL5.5.20免安装版的配置 -
confident_f:
安装了32的客户端后,用plsql导入导出表有问题,生成不了d ...
Oracle 11g R2 for Win7旗舰版(64位)的安装步骤 -
confident_f:
安装数据库的时候第9步卡住了 是怎么回事呢?
Oracle 11g R2 for Win7旗舰版(64位)的安装步骤
从JDK1.5开始,Java允许使用可变参数为方法指定数量不确定的参数。
如果在定义方法时,在方法的参数列表的最后一个类型后增加三点(...),则表明该参数可以接受多个参数值,多个参数值被当成数组传入。
例如:
运行结果:
可变参数其实就是一个数组参数,即以下两个方法签名的效果一样:
这两种形式都包含了一个名为args的参数,在这两个方法的方法体内都可以吧args当成数组处理。
但区别是调用这两个方法时存在差别:
对于采用可变参数形式定义的方法,调用方法时更加简洁,可以传入多个参数,也可以传入一个数组:
对于采用数组参数形式定义的方法,调用方法时必须传入一个数组:
例如:
还有一点需要指出:数组形式的参数可以处于参数列表的任何位置,一个方法中可有多个数组形参;但可变参数只能处于参数列表的最后,且一个方法中最多只能有一个可变参数。
如果在定义方法时,在方法的参数列表的最后一个类型后增加三点(...),则表明该参数可以接受多个参数值,多个参数值被当成数组传入。
例如:
public class VariableParameter { public static void main(String[] args){ System.out.println(add(1, 2)); System.out.println(add(1, 2, 3)); } public static int add(int x, int ... args){ int sum = 0; sum += x; //for(int i = 0; i < args.length; i++){ for(int i: args){ //sum += args[i]; sum += i; } return sum; } }
运行结果:
3 6
可变参数其实就是一个数组参数,即以下两个方法签名的效果一样:
//采用可变参数定义方法 public static int add(int x, int ... args); //采用数组参数定义方法 public static int add(int x, int[] args);
这两种形式都包含了一个名为args的参数,在这两个方法的方法体内都可以吧args当成数组处理。
但区别是调用这两个方法时存在差别:
对于采用可变参数形式定义的方法,调用方法时更加简洁,可以传入多个参数,也可以传入一个数组:
add(1, 2); add(1, 2, 3); add(1, new int[]{2, 3});
对于采用数组参数形式定义的方法,调用方法时必须传入一个数组:
add(1, new int[]{2, 3});
例如:
public class VariableParameter { public static void main(String[] args){ System.out.println(add(1, 2)); System.out.println(add(1, 2, 3)); System.out.println(add(1, new int[]{2, 3})); } public static int add(int x, int ... args){ //public static int add(int x, int[] args){ int sum = 0; sum += x; //for(int i = 0; i < args.length; i++){ for(int i: args){ //sum += args[i]; sum += i; } return sum; } }
还有一点需要指出:数组形式的参数可以处于参数列表的任何位置,一个方法中可有多个数组形参;但可变参数只能处于参数列表的最后,且一个方法中最多只能有一个可变参数。
发表评论
-
foreach循环
2013-06-24 16:15 1506从JDK1.5开始,Java提供了一个更简单的循环:forea ... -
泛型(core java 笔记)
2013-06-18 16:18 20861.为什么引入泛型 package generic; ... -
两个程序的说明
2010-10-19 09:26 11821、程序1的结果是: clas ... -
构造器初始化
2010-10-18 14:42 1556可以用构造器来进行初始化。在运行时刻,可以调用方法或执行某些动 ... -
成员初始化
2010-10-18 07:55 1261Java尽力保证:所有变量在使用前都能得到恰当的初始化。 对 ... -
线程的死锁
2010-10-11 19:21 1545当两个线程相互等待对方释放同步监视器时就会发生死锁,Java虚 ... -
线程的同步
2010-10-11 19:00 1310一个经典的关于线程安全性的问题:银行取钱问题。 银行取钱的基 ... -
java网站收集
2010-10-10 18:13 1305JAVA开发者最常去的25个英文网站:http://www.i ... -
控制线程
2010-10-10 16:06 20381、线程睡眠:sleep 如果我们需要让当前正在执行的线程暂 ... -
线程的状态
2010-09-28 19:00 1097线程从创建到执行完毕的整个过程称为线程的生命周期,在整个生命周 ... -
Java中Thread类的start()和run()的区别
2010-09-27 15:33 41581、start()方法来启动线程,真正实现了多线程运行,这时无 ... -
Java中创建线程的两种方法
2010-09-26 10:18 5662在Java中创建线程有两种方法:继承Thread类和实现Run ... -
创建String对象过程的内存分配小结
2010-09-23 20:32 2810常量池(Constant Pool):指的是在编译期被确定,并 ... -
Java堆和栈的区别 经典总结(转载)
2010-09-18 16:48 1307栈与堆都是Java用来在Ram中存放数据的地方。 与C++不 ... -
Java初学者都必须理解的七大问题
2010-09-18 10:36 1144问题一:我声明了什么 ... -
关于计算java程序运行时间(转载)
2010-09-18 09:22 1152//第一种,伪代码 long startTime= ... -
for循环的优化
2010-09-17 20:29 2174在程序中经常用到for循环,当一些算法实时性要求非常高时,对f ... -
详细解析Java中抽象类和接口的区别(转载)
2010-09-17 10:16 1139在Java语言中,abstract class和inter ... -
集合类(四):Map集合
2010-09-16 20:26 21695、Map集合 Map集合为映射类型,映射与集和列表有明显的区 ... -
集合类(三):Set集合
2010-09-16 19:43 29504、Set集合 Set集合为集类型,集是最简单的一种集合,存放 ...
相关推荐
Java数组传递及可变参数操作实例详解 Java 数组传递是指在方法之间传递数组对象的引用,而不是传递数组对象本身。这意味着,方法中对数组的修改将会影响原数组。在 Java 中,所有对象都是通过引用进行操作的,而...
C51可变参数函数允许程序员设计能接受不定数量参数的函数,这在C语言中是通过头文件stdarg.h提供的宏实现的。stdarg.h在Keil C51环境中也提供了对可变参数函数的支持,可以让嵌入式开发人员灵活地编写函数,以处理...
在C语言中,可变参数是一种非常有用的功能,它允许函数接受不同数量的参数。这种特性使得函数在设计时能够处理未预知数量的输入,增强了代码的灵活性和通用性。下面将详细介绍C语言中可变参数的实现原理、使用方法...
Java可变参数是Java语言中一个非常实用的特性,它允许方法接受数量可变的参数。这个特性在Java 5中被引入,极大地提高了代码的灵活性和可读性。下面我们将详细探讨Java可变参数的概念、用法以及背后的实现原理。 ##...
3. **C#处理C++可变参数**:然而,C#本身并不支持可变参数,因此不能直接映射到C++的可变参数函数。为了调用这样的函数,我们需要一些技巧。一种常见方法是创建一个C++/CLI(Managed C++)的中间层,该层可以理解C++...
在编程中,可变参数函数是一种能够接受不同数量参数的函数。这种函数的灵活性使得它在处理不确定数量输入数据时非常有用。本文将通过实例和详细的说明,帮助你理解并掌握如何编写可变参数函数。 首先,让我们了解...
### C语言可变参数及printf函数的实现 在C语言编程中,虽然可变参数(variadic functions)在自定义接口中较少应用,但作为核心功能之一,它在标准库函数如`printf`中扮演着关键角色。本文将深入探讨C语言中可变...
3. **优先级问题** - 如果一个函数既有可变参数,又有常规参数,那么可变参数总是位于最后。例如,`function test($fixed, ...$variable)`,在调用`test('fixed', 'var1', 'var2')`时,'var1'和'var2'会被放入`$...
在C语言中,可变参数是一种非常有用的特性,它允许函数接受不同数量的参数。这种特性使得编写如`printf`函数那样灵活的函数成为可能,这些函数可以根据传入的参数动态地处理数据。本文将深入探讨C语言中的可变参数...
在C语言中,`printf`函数是一个典型的可变参数函数,它的强大之处在于可以接受任意数量和类型的参数,而不仅仅是固定数量的参数。这得益于C语言的变长参数列表机制,该机制允许函数定义时最后一个参数是可变的,但...
### C语言中可变参数的用法 #### 引言 在C语言中,经常会遇到参数个数可变的函数,比如`printf()`函数。这类函数不仅能够接收一个固定类型的参数,还可以根据需要接受数量不等的其他参数。本文将详细介绍如何在...
在C语言中,可变参数是一种非常有用的特性,它允许函数接受不同数量的参数。这种功能在编写一些需要灵活处理参数的函数时非常方便,比如常见的`printf`函数。本篇将详细介绍C语言中可变参数的使用及其背后的机制。 ...
在C/C++编程语言中,有时我们需要编写可以接受不同数量参数的函数,这通常通过可变参数函数实现。本文将详细讲解如何定义和使用这样的函数,并通过一个演示程序来加深理解。 可变参数函数的核心是`stdarg.h`库,它...
在C语言中,可变参数的使用是一种灵活的特性,允许函数接受不同数量或类型的参数。这在处理如`printf`等需要动态参数列表的函数时非常有用。`printf`函数的定义允许用户根据需要传递任意数量的格式化参数。 在C语言...
### c语言中可变参数va宏的使用 #### 一、引言 在嵌入式系统开发中,经常需要从串口打印各种测试数据以便于分析。这些数据的类型和数量往往是不确定的,这就需要使用一种能够处理可变参数的方法。在C语言中,通过...
delphi实现类C可变参数函数
### C 语言中的宏、井号与可变参数详解 #### 宏的概述与使用 在C语言中,宏(Macro)是一种预处理指令,它允许开发者定义一系列文本替换规则,这些规则会在编译之前由预处理器进行处理。宏不是在程序运行时执行的...
C语言可变参数实现机制详解 C语言中的可变参数是一种特殊的函数参数形式,它允许函数接受不定数量和类型的参数。在日常开发中,我们常用的 printf 函数就是使用了可变参数的接口。今天,我们将深入探索 C 语言可变...
va_start 可变参数 va_end
在Java编程语言中,可变参数(Variable-Argument Parameters)是一项强大的特性,它允许函数接收一个不确定数量的同类型参数。这个特性自Java 5引入,极大地提高了代码的灵活性和可读性。在这个名为"Java可变参数...