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) 为什么是这样的提示,我弄不明白?
非常感谢!!
{ 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) 为什么是这样的提示,我弄不明白?
非常感谢!!
只是初始化了一个数组对象,但数组里面没有值,所以abc[i].x会出错,实际上abc[i]都是null
在使用abc[i].x前
abc[i]=new B();一下就可以了
B[ ] abc={new B(),new B(),new B()};
或加上]
for(int i=0; i<abc.length;i++){
abc[i]=new B();
}