akios @ ウィキ
3.8. 識別子
最終更新:
akios
-
view
3. 字句構造
3.1. Unicode
3.2. 字句変換
3.3. Unicodeエスケープ
3.4. 行終端子
3.5. 入力要素とトークン
3.6. 空白
3.7. コメント
3.8. 識別子
識別子(identifier)とはJava文字で始まりJava文字や数字が続く長さに制限のない列です。
Identifier:
IdentifierChars but not a Keyword or BooleanLiteral or NullLiteral
IdentifierChars but not a Keyword or BooleanLiteral or NullLiteral
IdentifierChars:
JavaLetter
IdentifierChars JavaLetterOrDigit
JavaLetter
IdentifierChars JavaLetterOrDigit
JavaLetter:
any Unicode character that is a Java letter (see below)
any Unicode character that is a Java letter (see below)
JavaLetterOrDigit:
any Unicode character that is a Java letter-or-digit (see below)
any Unicode character that is a Java letter-or-digit (see below)
"Java文字"とは、メソッドCharacter.isJavaIdentifierStart(int)がtrueを返す文字です.
"Java文字や数字"とは、メソッドCharacter.isJavaIdentifierPart(int)がtrueを返す文字です.
"Java文字"にはASCIIラテン大文字A~Z(\u0041~\u005a)および小文字a~z(\u0061~\u007a)と、歴史的理由から、ASCIIアンダースコア(_、\u005f)とドル記号($、\u0024)が含まれます。$は機械的に生成されたソースコードの中でのみ使用されるべきです。またまれに、レガシーシステムの既存名へのアクセスでも使われます。
"Java数字"にはASCII数字0~9(\u0030~\u0039)が含まれます.
文字と数字はUnicode文字集合のどの文字をとってきても構いません。Unicode文字集合は今日の世界中のほんどの文章で使われる文字、中国語や日本語、韓国語の大きな集合を含む、をサポートしています。これによりプログラマーがプログラム中の識別子を母国語で表記できます。
2つの識別子は等価すなわちどの文字や数字のUnicode文字も同じである場合にのみ同一とします。外観上同じに見える識別子でも異なるものである場合があります。
例えば、LATIN CAPITAL LETTER A (A、\u0041)、LATIN SMALL LETTER A (a、\u0061)、GREEK CAPITAL LETTER ALPHA (A, \u0391)、CYRILLIC SMALL LETTER A (a、 \u0430)およびMATHEMATICAL BOLD ITALIC SMALL A (a、\ud835\udc82)で表される1文字の識別子は全て互いに異なります。
Unicode複合文字(composite character)はそれと等しい分解した文字列とは異なる識別子と判断します。例えば、LATIN CAPITAL LETTER A ACUTE (Á、\u00c1)という識別子はLATIN CAPITAL LETTER A (A、\u0041)とそれに続くNON-SPACING ACUTE (´、\u0301)という識別子とは異なります。Unicode規格の3.11節"Normalization Forms"を参照してください。
以下は識別子の例です。:
- String
- i3
- αρετη
- MAX_VALUE
- isLetterOrDigit