2

我用 lejos 0.9 创建了一个项目。现在我知道的是,当类具有public static void main(String[] args). 但是我必须在乐高头脑风暴砖上获得更多的类和接口。有没有办法做到这一点 ?直接连接到brick 不是一个好主意,因为Java 文件将被放在无法运行的brick 上。

此问题的另一个选择可能是更改 uml 设计。这是目前的设计 在此处输入图像描述

所以基本上有一个机器人类,其他机器人如类人机器人等扩展了这个机器人类。然后是行为。其中都实现了Iwalk接口。由于多态性,每个机器人都可以动态地获得行为。

在humanoid.java 中:

package Robots;

导入行为。; 导入 IBehaviours。;

公共类人形扩展机器人 { 私人 Iwalk walker = new 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 将接口放在 legomidstorm 砖上。或者另一个 UML 设计做同样的事情但没有接口。提前泰。

4

1 回答 1

2

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

于 2011-11-15T10:21:59.080 回答