2014-12-06 123 views
0

我想從UML圖創建一個類,接口描述讓我感到困惑,因爲我不知道如何聲明Engine接口的最後兩個方法。在UML圖中,節流(int power)和getSpeed()之間的區別是什麼?

我知道前兩個是方法,所以他們將被宣佈爲void stop();void start();

但我該如何在界面中聲明其他方法? 這就是我已經宣佈的課程,我想知道這是否正確?

public interface Engine { 

    void stop(); 
    void start(); 
    void throttle(int power); 
    int getSpeed(); 

} 

這是接口的UML描述:

Engine Interface UML

+2

您的Java代碼看起來正確,但UML圖已損壞。它應該讀'throttle(power:int)'。至於實例變量,我不太理解你的問題。圖中沒有顯示實例變量。但是,第二個錯誤與此有關:如果沒有屬性,那麼在包含方法的框的上方仍然應該有兩條水平線(即非常緊密的空框)。 – 5gon12eder 2014-12-06 23:55:53

+1

@ 5gon12eder它是否也需要'throttle(int power):void'? – immibis 2014-12-06 23:59:32

+1

如果我沒有記錯,'f(...)'等同於'f(...):void',但我可能是錯的。 – 5gon12eder 2014-12-07 00:00:35

回答

1

是的,這是UML圖元件到Java代碼的正確翻譯。

getSpeed() : int表示「getSpeed是一種不帶參數並返回int的方法」。與Java不同,UML指定了名稱之後的事物類型(因此您應該也有power : int而不是int power)。

+0

我想知道'throttle()'和'getSpeed()'方法應該做什麼?從UML中看不出他們應該做什麼。因此,例如,當我從'CombustionEngine'類實現'Engine'接口時,聲明瞭public void throttle(int power)方法,但沒有定義它對'public int getSpeed()'的作用。因爲它只是返回零。 \t' – 2014-12-07 00:13:02

+1

UML圖並沒有說明他們應該做什麼。你需要從其他地方獲取這些信息。 – immibis 2014-12-07 00:17:53

相關問題