Java重要技术(2)语法之可变参数

1.1. 可变参数

可变参数指在定义函数时,函数的参数的个数不确定,调用者可以传入不同个数的参数。

可变参数使用如下方式定义,可变参数只能是函数的最后一个参数。

类型 ...  参数名称

可变参数被编译为数组,因此在函数中可以当做数组使用。

/**   

* @Title: VariableParameterTest.java

* @Package com.test.javatechnology

* @Description:

* @author http://www.cnblogs.com/coe2coe/

* @date 2017年3月19日 下午8:21:44

* @version V1.0   

*/

package com.test.javatechnology;

/**

* @ClassName: VariableParameterTest

* @Description:

* @author http://www.cnblogs.com/coe2coe/

* @date 2017年3月19日 下午8:21:44

*  

*/

public class VariableParameterTest {

static  void test( String  name, int...args){

int i;

System.out.println(name);

for(i=0;i<args.length;i++){

System.out.println(args[i]);

}

}

/**

 * @param args

 */

public static void main(String[] args) {

test("length is 0");

test("length is 1", 10);

test("length is 2", 10, 20);

}

}

可变参数可以当做数组使用,但是如果把最后一个参数定义为数组,则不能在调用这个函数

时当做可变参数使用。

static  void test( String  name, int[] args){

}

这个函数就不能这样使用,否则编译错误。

test("length is 0");

test("length is 1", 10);

test("length is 2", 10, 20);
时间: 2024-10-19 03:39:19

Java重要技术(2)语法之可变参数的相关文章

【Java学习笔记】函数的可变参数

1 package p2; 2 3 public class ParamterDemo { 4 5 public static void main(String[] args) { 6 7 int sum1 = add(4,5); 8 int sum2 = add(4,5,6); 9 int sum3 = add(4,5,6,7); 10 11 System.out.println(sum1); 12 System.out.println(sum2); 13 System.out.println

Objective-C语法之可变参数

可变参数的方法在Objective-C中不罕见,像Cocoa中的很多常见的方法都是可变参数的,如: 1 NSLog(NSString *format, ...) 2 + (id)arrayWithObjects:(id)firstObj, ... 3 + (id)dictionaryWithObjectsAndKeys:(id)firstObject , ... 那我们如何实现自己的变参方法呢,其实我们需要用到C语言中关于变参的一组宏:va_list,va_start,va_arg,va_end

java学习第15天(补充可变参数)

如果我们在写方法的时候,参数个数不明确,就应该定义可变参数. 格式: 修饰符 返回值类型 方法名(数据类型... 变量) {} 注意: A:该变量其实是一个数组名 B:如果一个方法有多个参数,并且有可变参数,可变参数必须在最后 举例: public static int sum(int... a) { int s=0; for(int x:a){ s+=x; } return a; } 此时如果我们在主函数中调用sum函数,都是正确的. sum(20) sum(20,30) sum(20,20,

java基础基础总结----- 构造方法,可变参数列表

1 package com.mon11.day2; 2 /** 3 * 类说明 :构造方法,可变参数列表 4 * @author 作者 : chenyanlong 5 * @version 创建时间:2017年11月2日 6 */ 7 class Employee{ 8 private double salary=1800; 9 10 //构造方法 11 public Employee(){ 12 System.out.println("构造方法被调用"); 13 } 14 15 //

Java重要技术(1)语法之静态导入

1.1. 静态导入 静态导入(import static)是一种不推荐使用的导入类的静态成员的语法.相对于普通的导入,静态导入有一个好处是可以少些几个单词,不必写类名. 有一个被导入类: /** * @Title: HelloWorld.java * @Package com.test.javatechnology.staticimport * @Description: * @author http://www.cnblogs.com/coe2coe/ * @date 2017年3月19日 下

Java重要技术(3)语法之增强for循环

1.1. 增强for循环 增强for循环可以在某些时候简化对数组和集合的遍历.增强for循环需要集合实现了Iterable接口. public static void main(String[] args) { //遍历数组 for(String s : args){ System.out.println(s); } ArrayList<Integer> arrayList = new ArrayList<Integer>(); arrayList.add(1); arrayLis

[问题记录]Java关于可变参数重载问题

突然发现java的可变参数重载是存在歧义的,只是不知道java内部是怎么处理的,特意做如下实验: 测试代码如下: 1 /** 2 * Created by ieayoio on 16-3-1. 3 */ 4 public class VarTest { 5 6 public static void aaa(int ...a){ 7 System.out.println("可变参数重载"); 8 } 9 10 public static void aaa(int a){ 11 Syste

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

在Python中定义函数,可以用必选参数.默认参数.可变参数.关键字参数和命名关键字参数,这5种参数都可以组合使用.但是请注意,参数定义的顺序必须是:必选参数.默认参数.可变参数.命名关键字参数和关键字参数. Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数. 默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑错误! 要注意定义可变参数和关键字参数的语法: *args是可变参数,args接收的是一个tuple: **kw是关键字参数,kw接收的

可变参数和关键字参数

# *args 和 **kw# *args是可变参数,args接收的是一个tuple:# **kw是关键字参数,kw接收的是一个dict.# 以及调用函数时如何传入可变参数和关键字参数的语法:# 可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3)):# 关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2}).# 使用*