class A 
{ public static void main(String[ ] args) 
    {     B[ ] abc=new B[3]; 
         double m; 
        for(int i=0;i<3;i++) 
           { abc[i].x=i*i; 
              m=abc[i].jieChen(3); 
              System.out.print("abc["+i+"].x="+m); 
          } 
    } 
} class B 
 {  double x; 
    public double jieChen(int n) 
          {  double jiechen=1; 
              for(int i=1;i<=n;i++) 
                {   jiechen=jiechen*x*i; 
                } 
              return jiechen; 
          } 

执行结果: 
C:\1111\guangxue>java A 
Exception in thread "main" java.lang.NullPointerException 
             at A.main(A.java:6) 为什么是这样的提示,我弄不明白? 
非常感谢!! 

解决方案 »

  1.   

    B[ ] abc=new B[3]; 
    只是初始化了一个数组对象,但数组里面没有值,所以abc[i].x会出错,实际上abc[i]都是null
    在使用abc[i].x前
    abc[i]=new B();一下就可以了
      

  2.   

    你的对象根本没创建, 你只创建了数组引用,但还没有联系到具体实例上。
    B[ ] abc={new B(),new B(),new B()};
    或加上]
    for(int i=0; i<abc.length;i++){
               abc[i]=new B();
              }
      

  3.   

    哦`!谢谢楼上两位。Thanks~!