Java資格の模擬試験で、以下のようなコードについて出題がありました。
public class Foo {
public static void main() {
System.out.println("Hello");
}
}
私は「コンパイルエラーが起きるだろう」と思いました。
なぜならコンパイルエラーは、コードに文法上の間違いがあると発生するからです。
2行目の「public static void main()」は、mainメソッドの書き方として正しくありません
(正しくは「public static void main(String[] args)」のはず)。
しかし問題集の答えでは、
「問題文のコードは文法的な誤りはないためコンパイルは成功します。
main()メソッドの構文に誤りがあるため、実行時にエラーが発生します」とありました。
構文に誤りがあるのに、文法的な誤りはないとはいったいどういうことなのでしょうか?
ご教示いただけると幸いです。
回答4件
あなたの回答
tips
プレビュー