我目前正在使用 Greenfoot,学习 Java。当谈到静态/非静态时,我非常讨厌,而且我对实例也很不确定。
在 Greenfoot,我有一个世界级的,我们称之为World。现在我有另一个类,名为Car和一个子类Redcar。最后,我有一个Button类。
如果你熟悉 Greenfoot,我创建了一个 Redcar 的实例,命名为redcar(只是小写)并通过 addObject() 将它添加到World;
public World() {
super(1000, 200, 1);
Redcar redcar = new Redcar();
Button button = new Button();
addObject(redcar, 45, 45);
addObject(button, 960, 175);
}
在Car类中,其中包含以下内容
public class Car extends Actor {
int carSpeed = 0;
public void drive() {
carSpeed++;
move(carSpeed);
}
}
如果从Redcar调用,它会在每次调用 drive 时将Redcar移动得更远。但是,我希望在单击Button时发生这种情况。在我的World类中,我想设置一些东西来达到这个效果:
if (Greenfoot.mouseClicked(button)) {
redcar.drive();
}
但是,如果将其放在World构造函数中,则在运行 Greenfoot 项目时它不会运行。我尝试将它放在一个while循环中,以便它不断寻找鼠标点击,但这不起作用,实际上它实际上使Greenfoot崩溃。
抱歉,如果这个问题措辞令人困惑,我会在需要时进行修改。基本上,我的问题是这样的。如何从不同的类调用一个类的方法来处理一个实例?例如,在按钮类中处理 redcar(实例)的 drive() 方法