main は有効な Java 識別子ですか? 質問する

main は有効な Java 識別子ですか? 質問する

私の子供の一人は高校で Java を学んでいるのですが、テストで次のような問題が出ました。

次のどれが Java で有効な識別子ですか?

a. 123java
b. main
c. java1234
d. {abce
e.)whoot

彼はbと答えて間違えました。

私はその質問を見て、それが有効な識別子main であり、正しいはずだと主張しました。

Javaを見てみましたスペック識別子については、その点を強調しました。また、 という変数とメソッドを持つサンプル プログラムも作成しましたmain。彼は、Java ドキュメント リファレンス、テスト プログラムを含む書面による反論を作成しましたが、教師はそれを無視し、答えは依然として間違っていると言いました。

main有効な識別子ですか?

ベストアンサー1

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です:

識別子は、 Java 文字Java 数字の無制限の長さのシーケンスであり、最初の文字はJava 文字でなければなりません。

識別子:

    IdentifierChars ですが、Keyword または BooleanLiteral または NullLiteral ではありません

識別子文字:

    Java 文字 {Java 文字または数字}

Javaレター:

    「Java 文字」である任意の Unicode 文字

Java文字または数字:

    「Java 文字または数字」である任意の Unicode 文字

文字列はmain上記の説明に当てはまり、セクション3.9のキーワードリスト

(同じ理由から、文字シーケンスjava1234も識別子です。)

おすすめ記事