我必须为下面编写的两个Java程序/代码创建UML图。 我的疑问是:
除此之外:有人可以为这两个程序绘制UML吗?我很难理解Threads,interface&相关的关键词,如extends,implements。
JAVA CODE#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 CODE#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
答案 0 :(得分:0)
接口的子类也是接口吗?
没有接口的子类这样的东西。您可以extend
与其他界面的界面,也可以implement
与班级的界面。
实现Runnable Interface的类是否也是一个接口?
不 - 这是一堂课。界面定义为interface
,而不是class
。
不能将方法/函数称为类的操作吗?
当然 - 方法/功能/操作 - 对我来说听起来像是合理的同义词。在内部,Java称它们为方法(参见reflection related javadoc)
全局变量是类或局部变量的唯一属性 在一个函数内也可以这样调用吗?
我假设您将类属性称为类实例拥有的对象/基元 - 在第一个示例中,myID
类中的SomeThread
。方法中的局部变量只能在该方法中访问(例如,同一类中i
方法中的run
),而不是类属性。
在第二个程序中,作者正在向Thread发送一个对象 构造函数。这是对的吗?
是; new SomeThread2(3)
返回SomeThread
的实例,该实例也是一个对象。
有人可以为这两个程序绘制UML吗?
不太可能。这听起来太像家庭作业了。
答案 1 :(得分:-1)
您可以使用IBM rational rose软件为您的程序获取UML图表(它不是免费版本)
或者如果您开发了编码,那么您应该知道逻辑,并且可以使用Edraw来绘制UML图。
线程只能以两种方式使用
通过实现Runnable接口或扩展Thread类。
简单:如果您使用关键字extends,那么您使用类
如果使用关键字implements,则使用接口。