2011-11-08 25 views
2

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

此问题的另一种选择可能是更改uml设计。这是目前的设计 enter image description here

所以基本上有一个机器人类和其他机器人如人形等扩展了这个机器人类。然后有行为。这一切都实现了界面Iwalk。由于多态性,每个机器人都可以动态获取行为。

在humanoid.java:

package Robots; 

进口行为。 ; 进口IBehaviours。;

public class Humanoid extends Robot私人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(); 

所以要答案存在于我的问题:如何把接口上legomindstorm砖leJOS的。或者另一个UML设计也是如此,但没有接口。 Ty提前。

+0

只是一个提示:在大一的时候,使用Lejos完成了一个学期的项目(而不是附带的软件),最终在一晚(包括建筑/装配/代码)中完成了整个项目。获得了整个学院的最高成绩。很有趣:) – switz

+0

hehe很好,我还有几个星期完成我的项目:p – Ojtwist

回答

2

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