1-8 main()メソッドの問題 

次のコードを確認してください。

class MainTest {
        void main() {
            System.out.println("A");
        }
        static void main(String args) {
            System.out.println("B");
        }
        public static void main(String[] args) {
            System.out.println("C");
        }
        void main(Object[] args) {
            System.out.println("D");
        }
}

このコードをコンパイル、および実行すると、どのような結果になりますか。

1つ選択してください。

A.A

B.B

C.C

D.D

E.コンパイルエラーが発生する

《解説》

main() メソッドについての問題です。

main()メソッドはjavaアプリケーション実行時にJVM(Java Virtual Machine)によって呼び出されるメソッドです。

JVMjavaコマンドで実行する際にクラス名を指定すると、main() メソッドを呼び出して処理を開始します。

Javaアプリケーションには必ず1つのmain()メソッドが定義されている必要があり、 以下のように宣言する必要があります。

public static void main(String[] args){
   // 処理
} 

main()メソッドの引数は、String配列型で宣言する必要があります。

ただし、配列名の argsは任意の名称に変更可能です。

2行目、5行目、11行目のmain()メソッドは、メソッドの定義としては正しい構文のためコンパイルは成功しますが、javaコマンド実行時に呼び出されるmain()メソッドとしては動作しません。

8行目のmain()メソッドが、構文に従った正しい記述のため javaコマンド実行時に呼び出されます。

したがって、実行結果は「C」 と出力されるため、選択肢Cが正解です。

《答え》C