zoukankan      html  css  js  c++  java
  • 可变参数列表与自动转型

    可变参数列表是JavaSE5以后所添加的一个重要特性,它使得程序员可以用更少的代码书写出优雅的方法访问方式。

    可变参数列表将大量的工作交给了编译器完成,包括参数数组的封包,自动转型等任务。

    在可变参数列表功能出现以前,函数的调用格式,必须与函数的声明格式完全对应一致。即对应位置的参数,必须满足类型要求。

    Example:

    static double addAll(Ball[]  ballArray )

    {

      double totalDiameter=0;

      foreach(ball b:ballArray )

         {

        totalDiameter=b.diameter+totalDiameter;

          }

    }

    mian()

    {

      Ball[] ba={new ball(1), new ball(2), new ball(3)}

      addAll(ba);

    }

    以上为传统的函数访问方式,此方式下必须严格的保证调用形式与声明的形式一致。

    可变参数类表给予了一种更为灵活的方式,使得我们在函数调用时。

    数组类参数无需给出数组对象,只需给出数组中的参数列表即可。

    e:

    addAll(new ball(1), new ball(2), new ball(3));

    此处,程序员给出的参数列表会被编译器自动的打包为一个数组,传递给addAll函数进行处理。

    有些时候,可能不仅需要数组参数,还需要别的参数,可以采用以下的声明和调用方式。

    Static void test(Integer i, Character... args){}

    Static  void test(Character... args){}

    调用时:

    test(1,'a');

    test('a','b');

    此处编译器会自动的根据函数的参数列表进行调用。

    需要注意的是参数"1"为int类型(基本类型),而Integer为int的包装器类,编译器会自动的对其进行转型。

  • 相关阅读:
    Adventure C CF-665E(字典树、二进制)
    实验7投资问题
    Beautiful Array CF-1155D(DP)
    Salary Changing CF-1251D(二分)
    Beautiful Sets of Points CF-268C(乱搞)
    Vasya And Array CF1187C(构造)
    Tree Painting CF-1187E(换根DP)
    Vus the Cossack and Numbers CF-1186D(思维)
    Tree POJ-1741(点分治+树形DP)
    Magical Girl Haze 计蒜客-A1958(分层最短路)
  • 原文地址:https://www.cnblogs.com/airwindow/p/2553242.html
Copyright © 2011-2022 走看看