我做了一个小程序想要测试一下类嵌套的问题,代码如下:
   import javax.swing.*;
public class in
{public static void main(String argv[])
 {inin q=new inin();
  q.setup();
  q.output();
 }
} class inin
{private ininin p;

 inin()
 {p=new ininin();
 }
 
public  void setup()
 {for(int i=0;i<5;i++)
   p.data[i]=i+1;
      
 }
  
 public void output()
 {String output="the data are"+"\n"; 
  for(int i=0;i<5;i++)
    output+=p.data[i]+"  "; 
  JOptionPane.showMessageDialog(null,output);    
 }    
}
 
 
  
class ininin
{ int []data;
} 这个程序编译通过了,但是运行是出现了问题:
    Exception in thread "main" java.lang.NullPointerException
at inin.setup(in.java:27)
at in.main(in.java:5)还有如果我这个小程序想用多文件实现的话,我应该怎么实现呢? 好象没看到有类似C里面include那种命令嘛! 
谢谢,请各位帮忙,小弟我不胜感激!

解决方案 »

  1.   


    class ininin
    { int []data;
    }没分配空间
      

  2.   

    下面有注释的地方是我改动过的地方
    public class A
    {public static void main(String argv[])
     {
      inin q=new inin();
      q.setup();
      q.output();
     }
    }  import javax.swing.*;
    class inin
    {private ininin p;
     private final int SIZE=5;//控制数组大小

     inin()
     {p=new ininin(SIZE);
     }
     
    public  void setup()
     {for(int i=0;i<p.data.length;i++)//用SIZE
       p.data[i]=i+1;
          
     }
      
     public void output()
     {String output="the data are"+"\n"; 
      for(int i=0;i<SIZE;i++)//这里也改下
        output+=p.data[i]+"  "; 
      JOptionPane.showMessageDialog(null,output);    
     }    
    }class ininin
    { int []data;
      public ininin(int t){//这里构造函数也改下;
       data=new int[t];
      }
    }