Java基础(三)——形参个数可变的方法

来源:互联网 发布:网络贷款个人征信 编辑:程序博客网 时间:2024/04/29 05:52

      从JDK1.5之后,Java允许定义形参个数可变的参数,从而允许为方法指定数量不确定的形参。如果在定义方法时,在最后一个形参的类型后增加三点(...),则表明该形参可以接受多个参数值,多个参数值被当成数组传入。下面程序定义了一个形参个数可变的方法。


package cn.gome.c_object;public class VarargsTest {//======================1.定义形参个数可变的方法======================public static void testVarargs(int a, String... books) {// book当成数组处理for (String book : books) {System.out.println(book);}// 输出整数变量a的值System.out.println(a);}// ======================2.采用数组形参来定义方法======================public static void testArray(int a, String[] books) {// book当成数组处理for (String book : books) {System.out.println(book);}// 输出整数变量a的值System.out.println(a);}public static void main(String[] args) {// 采用可变个数形参的方法调用testVarargs(5, "周周", "江江", "霄霄");// 采用数组形参的方法调用testArray(2, new String[]{"周周","江江","霄霄"});}}

     运行结果如下:

     

     从上面的运行结果可以看出,当调用test()方法时,books参数可以传入多个字符串作为参数值,从test()的方法体代码来看,形参个数可变的参数本质就是一个数组参数,也就是说,下面两个方法签名的效果完全一样:


     一、方法定义上


     1.采用可变个数形参来定义方法

        // 定义形参个数可变的方法public static void testVarargs(int a, String... books)


     2.采用数组形参来定义方法

     // 采用数组形参来定义方法     public static void testArray(int a, String[] books)

        二、方法调用上


     这两种形式都包含了一个名为books的形参,两个方法的方法体内都可以把books当成数组处理,但区别是调用两个方法时存在差差别:


     1.采用可变个数形参的方法调用

// 采用可变个数形参的方法调用testVarargs(5, "周周", "江江", "霄霄");

     

     2.采用数组形参的方法调用

        // 采用数组形参的方法调用testArray(2, new String[]{"周周","江江","霄霄"});


     对比这两种方法,很显然第一种形式上更加简洁。实际上,即使是采用形参个数可变的形式来定义方法,调用该方法时也一样可以为个数可变的形参传入一个数组。


     最后,需要注意的地方:

     数组形式的参数可以处于形参列表的任意位置,但是个数可变的形参处于形参列表的最后,也就是说,一个方法中最多只能有一个个数可变的形参




0 0