public void run() {}
これまで、メソッドを使用して Java でコードを実行してきました。いつ/なぜmain()
orinit()
の代わりに使用したいのrun()
ですか?
5 に答える
これは、選択の問題ではないはずなので、独特の質問です。
JVM を起動するときに、実行するクラスを指定しますmain()
。このクラスの でプログラムが開始されます。
init()
とは、JApplet メソッドのことだと思います。ブラウザでアプレットが起動されるinit()
と、指定されたアプレットのメソッドが最初の業務として実行されます。
run()
とは、Runnable の方法を意味していると思います。これは、新しいスレッドが開始されたときに呼び出されるメソッドです。
- メイン: プログラムの開始
- init: アプレット開始
- 実行: スレッド開始
run()
がなくてもEclipse がメソッドを実行している場合main()
、それは何か独特で非標準的なことを行っていますが、実行不可能ではありません。おそらく、この方法で実行しているサンプル クラスを投稿する必要があります。
main
メソッドは、Java アプリケーションのエントリ ポイントです。
具体的には、クラスを指定して (アプリケーション ランチャーを使用して) アプリケーションを実行するように Java 仮想マシンに指示すると、Java 仮想マシンはの署名を持つメソッドをjava
探します。main
public static void main(String[])
Sun のjava
コマンド ページから:
Javaツールは、Java アプリケーションを起動します。これは、Java ランタイム環境を開始し、指定されたクラスをロードし、そのクラスのメインメソッドを呼び出すことによって行われます。
メソッドは public および static として宣言する必要があり、値を返してはならず
String
、パラメーターとして配列を受け入れる必要があります。メソッド宣言は次のようにする必要があります。public static void main(String args[])
Java アプリケーションの実行方法に関するその他のリソースについては、次のソースを参照してください。
- 第 12 章: Java 言語仕様、第 3 版からの実行。
- Chapter 5: Linking, Loading, Initializing from the Java Virtual Machine Specifications, Second Edition .
- Java チュートリアルの「Hello World」アプリケーションを詳しく見てみましょう。
メソッドは、インターフェイスを実装する新しいクラスまたはクラスのrun
エントリ ポイントです。コマンド起動時に Java Virtual Machine から呼び出されることはありません。Thread
Runnable
java
Thread
or自体はRunnable
Java 仮想マシンによって直接実行できないため、Thread.start()
メソッドによって呼び出す必要があります。これは、 をインスタンス化し、アプリケーションのメソッドでそのメソッドThread
を呼び出すことで実現できます。start
main
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 チュートリアルからアプレットを作成する方法。
Java には特別な静的メソッドがあります。
public static void main(String[] args) { ... }
クラスがJavaコマンドラインで開始されたときにクラスで実行されます。
$ java Class
クラス「クラス」が存在する場合、そのメソッドを実行します。
public void run() { ... }
Runnable インターフェイスで必要とされるか、新しいスレッドを作成するときに Thread クラスから継承されます。
メソッドは、Java アプリケーションのmain()
エントリ ポイントです。run()
通常、新しいスレッドまたはタスクに使用されます。
どこでrun()
メソッドを書いてきたのか、どのような種類のアプリケーション (Swing、AWT、コンソールなど) を書いていて、開発環境は何ですか?
初心者として、acm パッケージをインポートします。このパッケージでは、run() はスレッドの実行を開始し、init() は Java アプレットを初期化します。