声明了数组对象以后还要对每一个数组元素进行空间分配!你只是为数组声明了空间
b[0]=new B();
加上这一句!

解决方案 »

  1.   

    b[0].s[0]="aaaaaaaaa";//此句有问题,什么原因?
    你会抛出一个NullPointerException
      

  2.   

    lionqun(晕JAVA) 说的很清楚啊。
    B[] b = new B[2];声明了一个二元素的数组,
    但是每一个元素都是一个对象,他们还没有初始化,在内存中根本就不存在
    这时候你使用没有初始化的对象b[0],就是这个出错的语句b[0].s[0]="aaaaaaaaa";
    当然就是NullPointer啦。
    在b[0].s[0]="aaaaaaaaa";的前面插入初始化语句b[0]=new B();
    这样才可以使用对象b[0].