我在下面创建了静态类,因此任何类都可以访问我的 lejos 机器人的任何传感器方法,而无需为每个类创建一个实例。
但是,每当我调用诸如StandardRobot.motorA.setPower(100)
机器人崩溃之类的方法时。当我使用完全相同的类并创建它的本地实例时,这工作正常。为什么是这样?两次我的代码都编译得很好并且在运行时失败。
import lejos.nxt.*;
public class StandardRobot {
public static ColorSensor colourSensor;
public static TouchSensor touchSensor;
public static UltrasonicSensor ultrasonicSensor;
public static NXTMotor motorA, motorB;
public StandardRobot() {
// instantiate sensors
ultrasonicSensor = new UltrasonicSensor(SensorPort.S1);
colourSensor = new ColorSensor(SensorPort.S2);
touchSensor = new TouchSensor(SensorPort.S4);
//instantiate motors
motorA = new NXTMotor(MotorPort.A);
motorB = new NXTMotor(MotorPort.B);
}
}