2011-11-08 67 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接口更改爲抽象類並將實現更改爲在行爲中擴展,也可以實現這一點。