它说那个定义是不是专指int[] a; ??
你赋初值不算?

解决方案 »

  1.   

    那不知道那个算定义那个算申明
    我赋初值也可以啊 int[] a = new int[]{1,2,3}
      

  2.   

    “Java不允许我们在数组定义时指定一个数组有多大。”
     这句话错了 ;)
      

  3.   

    int[] a = new int[10];
    上面的算是可以指定数组的大小,int[] a = new int[10];
    a = new int[30];
    这样的话是不是可以说数组的大小可以随意更改?
      

  4.   

    to accp(accp) 
    那数组申明是什么呢.
    你的第二个只是改了句柄,不能说改变原来数组的大小吧。
      

  5.   

    a = new int[10];
    System.out.println(a.length());a = new int[20];
    System.out.println(a.length());
    你打出来看看。
    int[] a;     ----这叫声明或者定义
    new int[10]; ----这叫实例化我觉得数组也可以看做对象,看一下这个代码
    public static void process(Object object)
    {
      ...
    }
    public static void main(String[] args)
    {
      int[] a = new int[10];
      process(a);  // 大家说编译是否能通过?
    }
    偶都特奇怪~
    ps: polosheng,你还有个老师教,俺那老师,没一个知道JAVA~
      

  6.   

    a.length 吧
    另外你的process我通过了啊,很正常啊。这跟我的那个又什么关系呢?
      

  7.   

    数组的长度一旦确定,就无法修改,无论是通过赋初值的方式还是直接制定长度的方式,对数组重新实例化不是改变了原来的长度,因为原数组的内容不会自动copy过来,其时java里面已经提供了可以动态改变长度的数组,象Vector对象。accp(accp) 的代码我没编译,不过如果能通过的话看起来有点奇怪,你只是指定了数组的长度,为数组赋初值后再试试看?
      

  8.   

    他的意思证明数组是个对象!你这样根本无用!
    你们老师、书上说的对的!只不过他得解释一下!
    我们只能在实例化时指定一个数组的大小!int[] a;     ----这叫声明或者定义,你不能写做int[10] a,或int a[10];
    说定义了一个大小为10的数组,JAVA中是不合法的!new int[10]; ----这叫实例化,此时指定数组的大小,元素个数是10!我们生成数组有两个做法!1:先定义或叫声明,再分配内存空间或初始化!
       int a[];
       a=new int[10];//那么数组a中有10个元素,此时a的大小刚确定!
    2:定义和分配内存空间(初始化)同时进行!
       int a[]=new int[10];//同时进行了!
       int a[]={10,11,12,13};
      

  9.   

    我觉得应该可以把数组变量作为一个对象的句柄来看待。
    定义数组时,java不允许这样来定义:int a[10];
    但它允许这样来操作:定义并初始化:int[] a = new int[10];
    另外,java确实允许你重新初始化已定义的数组变量的大小,接上例: a = new int[20];
    所以,我觉得我们确实不知道所定义的一个数组变量有多大,只是在用的时候做适当的初始化。
      

  10.   

    这应该是think in java 中文版的第四章里的内容吧,我刚看过。我认为它是对的。
    zhjjava解释得比我清楚,请教啦。
      

  11.   

    谢谢各位大哥。
    我一开始也想是不是definition of 定义搞错了,再次感谢。
      

  12.   

    所谓
    int a[];
    a=new int[10];//分配内存空间!可以!
    a=new int[20]; //重新分配内存空间!可以!
    定义数组和重新分配空间是两码事!
    试试下面的代码!class TestArray{
      
      public static void main(String arg[]){
        int a[]=new int[10];
        System.out.println(a.length);
        a=new int[20];
            System.out.println(a.length);
      }
    }