いくつかのコンストラクター(引数と引数なし)を持つクラス(1)があります。別の class(2) では、class 1 のオブジェクトが new constructor() を使用して作成されます。この場合、メインメソッドが呼び出されますか?
理想的には、どのクラスでも main メソッドが呼び出されるのはいつですか?
5 に答える
どのクラスもmainメソッドを持つことができます。たとえば、Class(1)クラスとClass(2)クラスの両方にmainメソッドを含めることができますが、プログラムの実行時に1回だけ呼び出されます。
たとえば、java class1などのプログラムを実行すると、Class(1)のメインメソッドを使用してプログラムを開始することをJavaに通知します。Javaは、検出したすべてのメインメソッドを実行すると思うので、これは混乱を招く可能性がありますが、そうではありません。Javaは、指定したクラスのmainメソッドを検出して実行すると、プログラムのmainメソッドがすでに実行されているため、検出される可能性のある将来のmain()メソッドをすべて無視します。
main()は、プログラムにつながるドアと考えることができます。一度入ると、コンピューターは再び入り込もうとしません。すでにプログラムに含まれています。これが少しお役に立てば幸いです。
main
は静的メソッドであり、プログラムのエントリ ポイントであり、オブジェクトの初期化ごとではなく、プログラムの開始時に (明示的に呼び出さない限り) 1 回呼び出されます。
このmain
メソッドは、次の 2 つの状況でのみ呼び出されます。
- Java 仮想マシンによるアプリケーションの起動
- メソッドを呼び出す別のメソッド (おそらく別のクラス内) によって、
main
これは正しい Java ですが、ベスト プラクティスではありません。
main
クラスのインスタンス化時に自動的に呼び出されることはありません - 静的メソッドとして、その外側のクラスは呼び出し可能にするためにインスタンス化する必要さえありません。
一方、コンストラクター メソッドは、クラスの作成時に呼び出されます。
class2 (メソッドを含める必要がありますmain
) を実行すると、main
メソッドが呼び出されます。
メソッドmain
は、プログラム内に存在しないものによって呼び出され、プログラムを開始するために一度呼び出されます。詳細については、こちらをご覧ください。どこに置くべきかに関しては、その場所に実際の制限はありません。