2

このコードを netbeans で実行しているときに、メイン クラスを選択するように求められます。なぜデフォルトで public クラスをメイン クラスとして選択して実行しないのですか?

class Staticclasss2{
    public static void main(String[] args){
        System.out.println("Hello world from staticclasss2");
    }
}
public class Staticclasss{
    public static void main(String[] args){
        System.out.println("hello world from Staticclasss");
    }
}
4

2 に答える 2

3

デフォルトでパブリッククラスをメインクラスとして選択して実行しないのはなぜですか?

単純に、クラスのアクセス レベルは、エントリ ポイント クラスを選択するときに関連する側面ではないためです。公開する必要がありますが、クラス自体はそうではありません...そして、多くの場合、公開しmainたくないでしょう。(結局のところ、通常、これを他のコードから呼び出しているわけではありません。私はむしろmainプライベートにできる状況にいることを望みますが、それは別の問題です。)

どちらのオプションも等しく有効であるため、状況は本質的にあいまいです。

于 2013-07-26T05:47:48.273 に答える
1

main()メソッドを含むクラスはパブリックである必要はありません。JREがプログラムを開始するためにmain()メソッドを取得するには、メソッドがパブリックである必要があります。

したがって、あなたの場合、パブリックmain()メソッドを含む 2 つのクラスがあるため、netbeans は 2 つのオプションから選択するように求めます。

同じことがEclipseのシナリオです。

于 2013-07-26T05:49:44.390 に答える