关于网友提出的“ 新手求教:错在哪里?”问题疑问,本网通过在网上对“ 新手求教:错在哪里?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 新手求教:错在哪里?
描述: 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(),new B(),new B()};
或加上]
for(int i=0; i<>
abc[i]=new B();
}
解决方案2: B[ ] abc=new B[3];
只是初始化了一个数组对象,但数组里面没有值,所以abc[i].x会出错,实际上abc[i]都是null
在使用abc[i].x前
abc[i]=new B();一下就可以了
以上介绍了“ 新手求教:错在哪里?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1892514.html