黑马程序员技术交流社区

标题: 可变参数 [打印本页]

作者: 真实姓名被注册    时间: 2015-8-5 23:58
标题: 可变参数
有这样的例子:

        class test{

               public static void show1(int a){

                       打印a

               }

               public static void show2(int a,int b){

                     打印a,b

               }

                    public static void main(String[] args){

                        show(1);show(1,2);

               }

         }

       如果还要打印3个数据,4个数据...,必须重载多次,可以考虑改成如下形式:

         class test{

               public static void show(int[] a){

                        打印数组a中所有元素

               }

               public static void main(String[] args){

                        show(new int[]{1});show(new int[]{1,2});

               }

         }

         每次将要打印的元素先封装成数组,再调用方法,这样浪费了内存空间,效率也低。

        JDK1.5版本中出现了新特性:可变参数,其实就是上一种数组参数的简写形式,不用每一次都手动建立数组对象,只要将要操作的元素作为参数传递即可,隐式的将这些参数封装成了数组。

        class test{

               public static void show(int...a){

                        打印数组a中所有元素

               }

               public static void main(String[] args){

                        show(1);show(1,2);

               }

         }



         可变参数在使用时注意:可变参数一定要定义在参数列表的最后面。比如下面这样定义是可以的:

         public static void show(String s,int...a){

          }

         而下面这样定义编译不通过:

          public static void show(int...a,String s){

                        打印数组a中所有元素

           }





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2