去掉a=new A[6]当然不行了.没有初始化嘛
去掉a[i]=new A()当然也不行了.没有给a[i]赋值, a[i].print();当然出出啦..

解决方案 »

  1.   

    初始化和赋值能不能同时进行。
    两次使用 new 会浪费内存,有没有更好的方法避免两次使用 new .
      

  2.   

    你的第二个new根本没有必要用它。什么也没有干呀
      

  3.   

    a = new A[6];
    是为数组非配空间
    严格的说是分配6个a的句柄要用的空间给数组
    下面的是为数组的每一个句柄帮定一个对象
    这样做并没有两次分配同样大的内存
    而且都是必需的
      

  4.   

    同意楼上的,两次new的作用并不一样。建议看看关于JAVA数组的介绍。
      

  5.   

    a = new A[2];  此时A[0]=null;A[1]=null;A[2]=null