42

public void run() {}これまで、メソッドを使用して Java でコードを実行してきました。いつ/なぜmain()orinit()の代わりに使用したいのrun()ですか?

4

5 に答える 5

78

これは、選択の問題ではないはずなので、独特の質問です。

JVM を起動するときに、実行するクラスを指定しますmain()。このクラスの でプログラムが開始されます。

init()とは、JApplet メソッドのことだと思います。ブラウザでアプレットが起動されるinit()と、指定されたアプレットのメソッドが最初の業務として実行されます。

run()とは、Runnable の方法を意味していると思います。これは、新しいスレッドが開始されたときに呼び出されるメソッドです。

  • メイン: プログラムの開始
  • init: アプレット開始
  • 実行: スレッド開始

run()がなくてもEclipse がメソッドを実行している場合main()、それは何か独特で非標準的なことを行っていますが、実行不可能ではありません。おそらく、この方法で実行しているサンプル クラスを投稿する必要があります。

于 2008-11-04T10:36:58.440 に答える
20

mainメソッドは、Java アプリケーションのエントリ ポイントです。

具体的には、クラスを指定して (アプリケーション ランチャーを使用して) アプリケーションを実行するように Java 仮想マシンに指示すると、Java 仮想マシンはの署名を持つメソッドをjava探します。mainpublic static void main(String[])

Sun のjavaコマンド ページから:

Javaツールは、Java アプリケーションを起動します。これは、Java ランタイム環境を開始し、指定されたクラスをロードし、そのクラスのメインメソッドを呼び出すことによって行われます。

メソッドは public および static として宣言する必要があり、値を返してはならずString、パラメーターとして配列を受け入れる必要があります。メソッド宣言は次のようにする必要があります。

public static void main(String args[])

Java アプリケーションの実行方法に関するその他のリソースについては、次のソースを参照してください。

  1. 第 12 章: Java 言語仕様、第 3 版からの実行。
  2. Chapter 5: Linking, Loading, Initializing from the Java Virtual Machine Specifications, Second Edition .
  3. Java チュートリアルの「Hello World」アプリケーションを詳しく見てみましょう。

メソッドは、インターフェイスを実装する新しいクラスまたはクラスのrunエントリ ポイントです。コマンド起動時に Java Virtual Machine から呼び出されることはありません。ThreadRunnablejava

Threador自体はRunnableJava 仮想マシンによって直接実行できないため、Thread.start()メソッドによって呼び出す必要があります。これは、 をインスタンス化し、アプリケーションのメソッドでそのメソッドThreadを呼び出すことで実現できます。startmain

public class MyRunnable implements Runnable
{
    public void run()
    {
        System.out.println("Hello World!");
    }

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

Threadのサブクラスまたは を実装するクラスを開始する方法の詳細と例については、Java チュートリアルのスレッドの定義と開始Runnableを参照してください。


initメソッドは、AppletまたはJAppletで呼び出される最初のメソッドです。

ブラウザの Java プラグインまたはアプレット ビューアによってアプレットがロードされると、最初にApplet.initメソッドが呼び出されます。アプレットを使用するために必要な初期化はすべて、ここで実行する必要があります。initメソッドが完了すると、メソッドstartが呼び出されます。

アプレットのメソッドが呼び出されるタイミングの詳細については、Java チュートリアルの「アプレットのライフ サイクル」でinitアプレットのライフサイクルについてお読みください。

参照: Java チュートリアルからアプレットを作成する方法。

于 2008-11-04T11:38:02.373 に答える
3

Java には特別な静的メソッドがあります。

public static void main(String[] args) { ... }

クラスがJavaコマンドラインで開始されたときにクラスで実行されます。

$ java Class

クラス「クラス」が存在する場合、そのメソッドを実行します。

public void run() { ... }

Runnable インターフェイスで必要とされるか、新しいスレッドを作成するときに Thread クラスから継承されます。

于 2008-11-04T10:27:38.427 に答える
2

メソッドは、Java アプリケーションのmain()エントリ ポイントです。run()通常、新しいスレッドまたはタスクに使用されます。

どこでrun()メソッドを書いてきたのか、どのような種類のアプリケーション (Swing、AWT、コンソールなど) を書いていて、開発環境は何ですか?

于 2008-11-04T10:23:59.963 に答える
-2

初心者として、acm パッケージをインポートします。このパッケージでは、run() はスレッドの実行を開始し、init() は Java アプレットを初期化します。

于 2012-03-06T11:35:45.923 に答える