JavaSE基础知识(十四)--Java的可变参数列表及其用法

本文详细介绍了Java中的可变参数列表,包括其使用场景、与数组的区别及结合,强调了可变参数列表在方法重载中的影响。通过实例展示了如何创建和调用带有可变参数的方法,解释了为什么在同一个方法中只能有一个可变参数列表,并讨论了Java SE5之前如何通过数组模拟可变参数。
摘要由CSDN通过智能技术生成

Java SE 是什么,包括哪些内容(十四)?

本文内容参考自Java8标准
可变参数列表与形式参数有关,需要分两大类来说明,一个是形式参数的数量,一个是形式参数的类型!

1、形式参数的数量

一般来讲,形式参数用的最频繁的地方就是类中的方法了。
那么,先来看个方法的例子:

// 有关方法的形式参数举例
  //类TestMethod
  class TestMethod{
   
     //此处省略类的变量
     //方法method,带两个int类型的形式参数
     public void Method(int i,int j){
   
          //方法体的内容
     }
  }
  //--------------------------------------------------------------------------
  //调用方法method
  //类Test
  class Test{
   
     //程序的执行入口main方法
     public static void main(String[] args){
   
        //创建类TestMethod的对象,引用名称为method
        TestMethod method = new TestMethod();
        //利用引用名称调用方法Method,并按方法的形式参数传入对应数量和类型的实际参数。
        method.Method(5,6);
     }
  }

上面代码中举例的方法是非常普通的一个方法,这种类型的方法有一个特别明显的局限性:你在创建方法的时候已经完全限定了调用方法的时候能传入的实际参数的类型和个数!比如上面代码举例中的方法Method(int i,int j),调用此方法的时候,你仅仅只能传入int类型实际参数,不能多,也不能少,那么,有没有这么一种可能:
在创建方法的时候,仅限定调用方法时传入的实际参数的类型,但是数量可以随意多少呢?

可以!

Java中的可变参数列表就能完全满足上面的需求!
通过利用可变参数列表,你可以在创建方法的时候仅仅规定调用方法的时候传入的实际参数的类型,而数量没有任何限制,可以不传入,可以仅传入一个,可以传入无限多个!
下面通过代码演示如何使用Java中的可变参数列表:
创建一个带有可变参数列表的方法:

// 有关方法的形式参数举例
  //类TestMethod
  class TestMethod{
   
     //此处省略类的变量
     //方法method,使用可变参数列表int...a
     //int...a是可变参数列表的形式
     //表示类型是int类型的,数量不限定。
     public void Method(int...a){
   
          //for循环,循环打印a里面的每一个元素
          //这里使用了for循环遍历a里面的所有元素,容易让人觉得a
          //实际上就是一个数组,但是不是,只是类似。
          for(int i = 0;i<a.length;i++){
    
             //从a[i]的访问形式也容易让人角色a就是数组,但是不是,只是类似.
             System.out.println(a[i]);
          }
     }
  }
  //--------------------------------------------------------------------------
  //调用方法method
  //类Test
  class Test{
   
     //程序的执行入口main方法
     public static void main(String[] args){
   
        //创建类TestMethod的对象,引用名称为method
        TestMethod method = new TestMethod();
        //不传入任何的实际参数
        method.Method();
        //传入一个参数(必须是int类型)
        method.Method(1);
        //传入多个参数(都必须是int类型,相互之间用","隔开)
        method.Method(1,5,6,7,8,9,0);
     }
  }

实际结果示例:
输入多少个参数就输出多少个参数!
第一次调用,没有传入任何int类型的实际参数,所以输出为" ",就是没有任何内容。
第二次调用,传入了一个1,所以输出内容就是1。
第三次调用,传入了1 ,5 ,6 ,7 ,8 ,9 ,0,所以最后的输出是1567890。
下面再来证实一下为什么可变参数列表不是数组:
还是上面的代码,直接将方法的形式参数替换成数组:

// 有关方法的形式参数举例
  //类TestMethod
  class TestMethod{
   
     //此处省略类的变量
     //方法method,使用数组
     public void Method(int[] a){
   
          //for循环,循环打印数组a里面的每一个元素
          for(int i = 0;i<a.length;i++){
    
             //a[i]是数组的访问形式
             System.out.println(a[i]);
          }
     }
  }
  //--------------------------------------------------------------------------
  //调用方法method
  //类Test
  class Test{
   
     //程序的执行入口main方法
     public static void main(String[] args){
   
        //创建类TestMethod的对象,引用名称为method
        TestMethod method = new TestMethod()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值