2016-08-07 5 views
0

私は、OracleのJavaチュートリアルからの並行性について学んでいたと私は例が働いていた私の地元の機械では次の2つの例実行可能なインターフェイスとスレッドクラスはインポートされません。どうして?

public class HelloRunnable implements Runnable { 

    public void run() { 
     System.out.println("Hello from a thread!"); 
    } 

    public static void main(String args[]) { 
     (new Thread(new HelloRunnable())).start(); 
    } 

} 

public class HelloThread extends Thread { 

    public void run() { 
     System.out.println("Hello from a thread!"); 
    } 

    public static void main(String args[]) { 
     (new HelloThread()).start(); 
    } 

} 

を試してみました。さて、私はJavaのプログラミングの初心者ですが、質問が非常にキディッシュに見える場合は、私は礼儀正しく、なぜRunnableインターフェイス、最初の例では、Threadクラス、両方の例でインポートされませんでしたか?

ありがとうございます!

+0

java.langパッケージのクラスとインタフェースは、デフォルトでインポートされます。 – Eran

+0

java.langパッケージに含まれる各クラスは自動的に各クラスにインポートされます。それらの2つのクラスRunnalbleとThreadがその一部です。 java doc's: https://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.htmlおよび https://docs.oracle.com/javase/7/docs/api/を参照してください。 java/lang/Thread.html – Rafal

答えて

1

他にも述べたように、java.langパッケージ内のクラスとインタフェースはインポートする必要はありません。デフォルトでインポートされます。

このウェブサイトではいくつかの例を確認できます。 java.langのクラスのいずれも輸入されていません:

java.lang examples

しかし、また、サブパッケージ内のクラス/インタフェースが(そのページ上の反射の例を確認してください)インポートする必要があることに注意してください。

0

RunnableとThreadはjava.langパッケージに属します。このパッケージのインターフェースとクラスは暗黙的です。それらは輸入する必要はありません。

関連する問題