2013-03-21 104 views
-4

我必須爲下面編寫的兩個Java程序/代碼創建UML圖。 我的查詢如下:爲Java代碼創建UML

  • 是接口的子類還是接口嗎?
  • 實現Runnable接口的類是否也是一個接口?
  • 不能調用方法/函數操作類嗎?
  • 全局變量是一個類中的唯一屬性還是局部變量在函數中也可以這樣調用?
  • 在第二個程序中,作者正在向Thread構造函數發送一個對象。這是對的嗎?

另外:有人可以爲這兩個程序繪製UML嗎?我很難理解線程,接口&相關的關鍵字如擴展,實現。

Java代碼#1

public class RunThreads 
    { 
    public static void main(String[] args) 
     { 
     SomeThread p1=new new SomeThread(1); 
     p1.start(); 
     SomeThread p2=new new SomeThread(2); 
     p2.start(); 
     SomeThread p3=new new SomeThread(3); 
     p3.start(); 
     } 
    } // end class RunThreads 

public class SomeThread extends Thread { 
    { 
    int myID; 
    SomeThread(int id) { 
     this.myID=id; 
    } 
    public void run() { 
     int i; 
     for(i = 1; i < 11; i++) 
     System.out.println("Thread" + myID + ": " + i); 
    } 
    } // end class SomeThread 

Java代碼#2

public class RunThreads2 
    { 
    public static void main(String[] args) 
     { 
     Thread p1 = new Thread(new SomeThread2(1)); 
     p1.start(); 
     Thread p2 = new Thread(new SomeThread2(2)); 
     p2.start(); 
     Thread p1 = new Thread(new SomeThread2(3)); 
     p3.start(); 
     } 
    } // end class RunThread2 

class SomeThread2 implements Runnable { 
    int myID; 
    SomeThread2(int id) { 
    this.myID = id; 
    } 
    public void run() { 
    int i; 
    for(i=1; i<11; i++) 
     System.out.println("Thread " + myID + ": " + i); 
    } 
    } // end class SomeThread2 
+3

_有人可以爲兩個程序繪製UML嗎?_ - ** NO **。 – SudoRahul 2013-03-21 05:50:10

+2

因爲我們什麼時候才能在SO上完成家庭作業? – Bart 2013-03-21 05:52:57

+0

如果聽起來像是作業,但我試着解決我書中的所有問題,這就是其中之一。 再次抱歉 我是Java(接口)和UML的初學者。他們對我有點困惑,所以我期待着一個解答的答案,這可以幫助我更好地學習。 – viditkothari 2013-03-21 14:16:59

回答

0

是子類的接口也是一個接口的?

有沒有這樣的事情作爲接口的子類。你可以用extend與另一個接口的接口,或者你可以用implement與一個類的接口。

是一個實現Runnable接口的類也是接口嗎?

不 - 這是一個班級。接口定義爲interface,而不是class

無法調用方法/函數類的操作?

當然 - 方法/功能/操作 - 聽起來像合理的同義詞給我。在內部,Java調用它們的方法(見reflection related javadoc

是全局變量的函數內的類或局部變量 的唯一屬性,也可以叫呢?

我想你指的是類屬性爲一個類的實例擁有的對象/圖元 - 在你的第一個例子,這將是在SomeThreadmyID。方法中的局部變量只能在該方法中訪問(例如,run方法中的i在同一個類中),而不是類屬性。

在第二個程序中,作者發送一個對象給線程 構造函數。這是對的嗎?

是的; new SomeThread2(3)返回SomeThread的一個實例,該實例也是一個對象。

有人可以爲兩個程序繪製UML嗎?

不太可能。這聽起來太像功課了。

+0

非常感謝你的回答。儘管你發佈了這個版本已經有一段時間了,但是從你的回覆中學到很多東西。 – viditkothari 2015-03-29 10:23:13

-1

您可以使用IBM Rational Rose的軟件,以獲得UML圖程序(它不是免費的版本)

,或者如果你開發的代碼,那麼你應該知道的邏輯,你可以使用Edraw畫UML圖。

線程只能通過兩種方式

使用通過實現Runnable接口或通過擴展Thread類。

簡單:如果你使用的關鍵字,那麼你使用類

,如果你使用關鍵字實現,那麼你使用一個接口延伸。

+0

「如果您使用關鍵詞擴展,那麼您使用的是class_」 - 除了當[擴展接口]時(http://en.wikipedia.org/wiki/Interface_(Java)) – Krease 2013-03-21 06:24:35

+0

接口可以擴展另一個接口並且沒有一個班可以擴展它。他的代碼沒有任何抽象類。 – Ameer 2013-03-21 06:29:46

+0

我不確定什麼抽象類與此有關。我在您的一般聲明中指出了錯誤。使用關鍵字'extends'並不總意味着你正在使用一個類 - 'Runnable2 extends Runnable' - 有效,並且沒有處理類。 – Krease 2013-03-21 06:33:15