我用lejos 0.9创建了一个项目。现在我知道的是,当类具有public static void main(String[] args)时,我只能使用eclips插件上载和编译类(从Java到nxj文件)。但是我必须在乐高头脑风暴积木上获得更多的类和接口。有没有办法做到这一点 ?直接连接到模块不是一个好主意,因为Java文件将被放置在无法运行的模块上。

解决此问题的另一种方法是更改​​uml设计。这是目前的设计


因此,基本上有一个机器人类别,其他机器人(如类人机器人)扩展了该机器人类别。然后有行为。哪个都实现了Iwalk接口。由于多态性,每个机器人都可以动态获得行为。

在humanoid.java中:

package Robots;


进口行为。
进口行为。

公共类人形生物扩展了机器人{
    私人Iwalk Walker =新的ForwardLegs();

Iwalk getWalker() {
    return walker;
}

public void setWalker(Iwalk walker) {
    this.walker = walker;
}

public void moving() {
    setWalker(walker);
    walker.move();
}
}


在helloworld.java类中(未链接到任何类,仅用于初始化)

        Humanoid asimov = new Humanoid();
    asimov.setWalker(new ForwardLegs());
    asimov.moving();


因此,有一个答案要回答我的问题:如何使用lejos将界面放置在legomindstorm砖上。或者另一种UML设计也可以做到,但没有接口。提前。

最佳答案

我通过不使用接口解决了问题。我需要接口的原因是因为我需要多态性。也可以通过将IWalk接口更改为抽象类并更改实现以扩展行为来实现。

10-02 04:16
查看更多