1. ホーム

[解決済み】mainは有効なJava識別子ですか?

2022-04-17 04:12:47

質問

私の子供が高校でJavaを履修しているのですが、あるテストでこのような問題がありました。

Javaで有効な識別子は次のうちどれでしょう?

a. 123java

b. main

c. java1234

d. {abce

e. )whoot

と答えています。 b で、間違っていた。

問題を見て、次のように主張しました。 main は有効な識別子であり、それが正しいはずであると。

私たちは、Javaの スペック の識別子があり、その点を補強しました。 また、サンプルプログラムでは、変数に main , メソッドと同様に。 彼は、Javaドキュメントのリファレンス、テストプログラムを含む反論の文章を作成しましたが、先生はそれを無視して、答えはまだ間違っていると言いました。

main は有効な識別子ですか?

解決方法は?

public class J {
    public static void main(String[] args)
    {
        String main = "The character sequence \"main\" is an identifier, not a keyword or reserved word.";
        System.out.println(main);
    }
}

これはコンパイルされ、実行されるとこのような出力が出ます。

The character sequence "main" is an identifier, not a keyword or reserved word.

文字列 main は識別子であり、キーワードや予約語ではありません。

JLS の該当箇所は 3.8 です。 :

An 識別子 の長さ無制限のシーケンスです。 Java文字 ジャワ数字 でなければならず、そのうちの1つは ジャワ文字 .

識別子です。

    IdentifierCharsであり、Keyword、BooleanLiteral、NullLiteralでないもの。

IdentifierCharsです。

    JavaLetter {JavaLetterOrDigit} です。

JavaLetterです。

    Java letter"である任意のUnicode文字。

JavaLetterOrDigitです。

    Java letter-or-digit" である任意の Unicode 文字。

文字列 main は上記の説明に合致し、かつ キーワードリスト(3.9節 .

(文字列 java1234 も同じ理由で識別子です)。