私の子供の一人は高校で 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
は識別子であり、キーワードや予約語ではありません。
識別子は、 Java 文字とJava 数字の無制限の長さのシーケンスであり、最初の文字はJava 文字でなければなりません。
識別子:
IdentifierChars ですが、Keyword または BooleanLiteral または NullLiteral ではありません
識別子文字:
Java 文字 {Java 文字または数字}
Javaレター:
「Java 文字」である任意の Unicode 文字
Java文字または数字:
「Java 文字または数字」である任意の Unicode 文字
文字列はmain
上記の説明に当てはまり、セクション3.9のキーワードリスト。
(同じ理由から、文字シーケンスjava1234
も識別子です。)