黑马程序员技术交流社区

标题: 关于for的问题 [打印本页]

作者: 刘泰    时间: 2012-3-29 14:59
标题: 关于for的问题
在含有可变参数的方法中用for(int a, int ... as){}
编译器可以把可变参数隐含的创建一个数组,所以对可变参数的操作和对数组的操作相同,如

public class Number
{

        public static void main(String[] args)
        {
        System.out.println(sum(2,5,5,6));
        }
  public static int sum(int x,int ...number){//int ... number 定义一个可变参数
                int sum = x;
                for(int i = 0 ;i < number.length ; i++){
                        sum += number[i];
                }
                return sum;
        }

}
能不能在传入的时候,直接传入一个数组呢?
方法里面的参数还是可变参数!
作者: 刘士    时间: 2012-3-29 15:05
本帖最后由 刘士 于 2012-3-29 15:39 编辑

  • public class ChangableArgTest {  
  •   
  •     public static void main(String[] args) {  
  •         String[] strings = new String[] { "hello", "world" };  
  •         new ChangableArgTest().print(strings);  
  •         new ChangableArgTest().print("hello", "world");  
  •     }  
  •       
  •     public void print(String ... strings ) {  
  •         for(String str : strings) {  
  •             System.out.println(str);  
  •         }  
  •     }  
  •   
  • }

    输出:
    hello
    world
    hello
    world


    证明:
    new ChangableArgTest().print(strings);
    new ChangableArgTest().print("hello", "world");是相同的。
    数组可以完全代替可变参数。




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