-4

以下に記述された 2 つの Java プログラム/コードの UML ダイアグラムを作成する必要があります。私のクエリは次のとおりです。

  • インターフェイスのサブクラスもインターフェイスですか?
  • Runnable Interface を実装するクラスもインターフェイスですか?
  • メソッド/関数をクラスの操作と呼ぶことはできませんか?
  • グローバル変数はクラスの唯一の属性ですか、または関数内のローカル変数もそのように呼び出すことができますか?
  • 2 番目のプログラムでは、作成者は Thread コンストラクターにオブジェクトを送信しています。それが正しいか?

余談ですが、誰かこの 2 つのプログラムの UML を描いてくれませんか? スレッド、インターフェース、およびextends、implementsなどの関連キーワードを理解するのに苦労しています。

ジャバコード #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

ジャバコード #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
4

2 に答える 2

0

インターフェイスのサブクラスもインターフェイスですか?

インターフェイスのサブクラスのようなものはありません。extend別のインターフェイスとのインターフェイス、またはimplementクラスとのインターフェイスが可能です。

Runnable Interface を実装するクラスもインターフェイスですか?

いいえ、それはクラスです。インターフェイスはinterfaceではなくで定義されますclass

メソッド/関数をクラスの操作と呼ぶことはできませんか?

確かに - メソッド/関数/操作 - 私には合理的な同義語のように聞こえます。内部的には、Java はこれらをメソッドと呼びます (リフレクション関連の javadocを参照) 。

グローバル変数はクラスの唯一の属性ですか、または関数内のローカル変数もそのように呼び出すことができますか?

クラスインスタンスが所有するオブジェクト/プリミティブとしてクラス属性を参照していると思います-最初の例では、これはmyIDクラスにありSomeThreadます。メソッド内のローカル変数は、そのメソッド内 (たとえば、同じクラス内のメソッド内) でのみアクセスでき、iクラスrun属性ではありません。

2 番目のプログラムでは、作成者は Thread コンストラクターにオブジェクトを送信しています。それが正しいか?

はい; これもオブジェクトであるnew SomeThread2(3)のインスタンスを返します。SomeThread

誰かが 2 つのプログラムの UML を描いてくれませんか?

ありそうもない。これは宿題のように聞こえます。

于 2013-03-21T06:13:26.100 に答える
-1

IBM Rational Rose ソフトウェアを使用して、プログラムの UML ダイアグラムを取得できます (無料版ではありません)。

または、コーディングを開発した場合は、ロジックを知っている必要があり、Edrawを使用して UML ダイアグラムを描画できます。

スレッドは 2 つの方法でのみ使用できます

Runnable インターフェイスを実装するか、Thread クラスを拡張します。

シンプル:キーワード extends を使用する場合、クラスを使用します

キーワードimplementsを使用する場合は、インターフェースを使用します。

于 2013-03-21T06:17:20.680 に答える