class KeChengItem 
{
public int int_item;
public String str_item;
public KeChengItem()
{
int_item=0;
str_item="1";
System.out.println(str_item);
}
}
class KeCheng
{
public KeChengItem[] kcitem=new KeChengItem[7];
    public KeCheng()
    {
     for(int i=0;i<=6;i++)
     System.out.println(kcitem[i].str_item);
    }

class test {
   public static void main(String [] args)
   {
    KeChengItem kcitem=new KeChengItem();
    KeCheng kc =new KeCheng();
    }

}这段代码为什么有通不过编译啊,下面是错误提示:
Exception in thread "main" java.lang.NullPointerException
at KeCheng.<init>(test.java:18)
at test.main(test.java:25)

解决方案 »

  1.   

    KeCheng   kc   =new   KeCheng(); 执行后会调用KeCheng的初始化方法,但你没有对kcitem数组付值,所以在打印时出现空值了
      

  2.   

    编译能通过。但是运行的时候就会出错,因为你没有给数组赋值,也重新声明了kcitem对象。
      

  3.   

    kcitem是类当它在创建数组时会不回调用它的KeChengItem()来初始化?
      

  4.   

    不是要在KeChengItem类内定义带参数的KeChengItem(int num)进行数组的初始化?