2013-03-21 177 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