日期:2014-05-20  浏览次数:20719 次

【新手学java】关于方法的可变参数和forecah的用法
直接上代码,
Java code
//newDemo1.java
//关于方法可变参数和数组输出方法foreach的练习
public class newDemo1
{
    public static void main(String args[])
    {
        System.out.print("不传递阐述(fun()):");
        fun();
        System.out.print("\n传递1个参数(fun(1)):");
        fun(1);
        System.out.print("\n传递5个参数(fun(1,2,3,4,5)):");
        fun(1,2,3,4,5);
        useForEach();
    }
        
    public static void fun(int...arg)   //这里为什么定义为int...arg[]之后,编译出错误!
    {
        for(int i:arg)                    //使用foreach输出
            System.out.print(i+" ");
    }
/*    
    public static void fun(int...arg)   //没有定义为数组,为什么下面还能有arg[i]
    {
        for(int i=0;i<arg.length;i++)     //不使用foreach输出
            System.out.print(arg[i]+" ");
    }
*/    
    public static void useForEach()
    {
        int x[]={1,2,3,4,5,6,7,8,9};      //如果上面正确的话,这儿应该作何解释?
        System.out.println("\n参照");    
        for(int i:x)
            System.out.print(i+" ");
    }
}


------解决方案--------------------
这里为什么定义为int...arg[]之后,编译出错误!

参数中int...arg就表示一个1维数组,不能通过这种方式定义二维数组
------解决方案--------------------
arg本身就是数组,所以不需要写[],也能直接用arg[i]

 int x[]={1,2,3,4,5,6,7,8,9};
只是 int[] x = {1,2,3,4,5,6,7,8,9}; 的一种变通写法

只有在声明的时候能这样变通