5-5 可变参数的方法

import java.io.PrintStream;


public class ParamVaO {

    /**
     * @author:lixh
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        

        
        double[] a =  new double[]{3.1,4.5,1.1};
        getMax(3.1,4.5,1.1);
        getMax(a);
        
    }

    /**
     * 参数变量可变的方法
     * 
     * System.out.printf(format, args);
     * 源码
     *  public PrintStream printf(String format, Object ... args) {
     *      return format(format, args);
     *  }
     *  对于方法printf来说 Object ... args 与 Object[] args 一样
     * 编译器对每次的调用进行转换,以便将参数绑定到数组上,并在必要时候进行自动装箱
     * 
     * 
     * 
     *  getMax(3.1,4.5,1.1);
     *     编译器将new double[]{3.1,4.5,1.1};传递给方法getMax
     * 
     * 参数可变变量必须放到最后一位   public static double getMax(double ... arg,String string){}报错
     * 
     * 可以将最后一个参数是数组方法重新定义成可变参数的方法,而且不会破坏已经存在的代码
     */
    public static double getMax(double ... arg){
        double Max = 0.0d;
        for (double d : arg) {
            if (Max<d) {
                Max = d;
            }
        }
        return Max;
    } 
    
    /*public static double getMax(double[] arg){
        double Max = 0.0d;
        for (double d : arg) {
            if (Max<d) {
                Max = d;
            }
        }
        return Max;
    } */
    
    
}

 

posted @ 2018-01-07 15:34  aLa神灯  阅读(120)  评论(0编辑  收藏  举报