我有4节课。一个是抽象实体类,一个是球类,一个是主类,一个是屏幕类。
球类扩展了实体类,有 5 个变量。
screen 函数有一个paint方法:
public void paint(Graphics g){
super.paint(g);
ball.paint(g);
}
当然,要使用 ball.paint 需要为它创建一个对象。所以,我做球对象:
Ball ball;
然后在屏幕构造函数中添加它,因为我需要(Ball 有一个带有 5 个变量的构造函数):
public Screen(){
ball = new Ball(ball.getWeight(), ball.getWidth(), ball.getHeight(), ball.getX(), ball.getX());
}
这没有错误,但是当我运行程序时,我在控制台中收到此错误:
Exception in thread "main" java.lang.NullPointerException
at h3x.engine.gfx.Screen.<init>(Screen.java:18)
at h3x.engine.Main.main(Main.java:16)
主类的第 16 行是这样的:
frame.add(new Screen());
...屏幕类的第 18 行是这样的:
ball = new Ball(ball.getWeight(), ball.getWidth(), ball.getHeight(), ball.getX(), ball.getX());
所以我的问题是,为什么会发生这种情况,我该如何解决。如果需要,我可以将整个代码放入类中。
谢谢!