識別子と予約語を理解する
識別子は変数・クラス・メソッドなどへ付ける名前です。使える文字、予約語との区別、大文字小文字、名前を使える範囲を理解すると、コードを実行する前に見つかる命名上の誤りを判断できます。
この単元で学ぶこと
- 識別子として使える名前を判断する
- 予約語とリテラルと型推論のvarを区別する
- 宣言した名前と参照する名前の対応を追う
本文解説
識別子の役割 int count=3;ではintが型、countが識別子、3が初期値です。System.out.print(count)は名前countに結び付いた変数の値を読みます。名前自体の文字列を表示したいときは"count"と引用符を付けます。
開始文字と後続文字 count2のように数字を後ろへ置くことはできますが、2countは識別子になりません。英字以外にアンダースコアやドル記号、日本語の文字も使える場合があります。読みやすい名前を選ぶ慣習と、コンパイルできる文字の規則は別です。
大文字と小文字 countとCountは別の識別子です。int count=2;int Count=5;と宣言すれば二つの値を保持します。countだけを宣言してCOUNTを使うと、値0で補われるのではなく未宣言名のコンパイルエラーです。
予約語 class、int、if、returnなどは構文のために予約されています。int class=3;とは書けません。一方、Classやintegerは同じ綴りではないため識別子として使えます。予約語の判定にも大文字小文字が関係します。
リテラルとの区別 trueとfalseはbooleanリテラル、nullはnullリテラルです。厳密には予約語の一覧と同じ分類ではありませんが、いずれも通常の変数名には使えません。"true"という文字列とboolean値trueも異なります。
アンダースコアとvar Java 11で_単独は予約語なので変数名にできませんが、_countは可能です。varはローカル変数の型推論に使う制限付き型名で、int var=3という変数名の利用は可能です。Javaの版を指定せず古い規則と混ぜないようにします。
名前に演算子や空白を含めない item-countは一つの名前ではなく、itemからcountを引く式として字句を分けます。int item-count=3;は変数宣言として不正です。first nameのように空白で区切った二語を一つの変数名にはできません。firstName等を使います。
宣言と利用範囲 同じローカルスコープでint n=1;int n=2;と重ねて宣言できません。また{int n=1;}のブロックを出るとそのnは使えません。名前が文法上正しいかに加え、どこで宣言しどの範囲から使っているかを確認します。
図解
重要ポイント
- 名前は数字から始められないが、途中の数字は使える。
- 大文字小文字は区別される。
- classやintなどの予約語を変数名にできない。
- Java 11では単独の_は禁止だが、_countは使える。
間違えやすい点
- true/nullを通常の変数名にしない。
- Javaの命名慣習を文法上の強制と混同しない。
- 名前の似た別変数を同じものとして読まない。
用語解説
- 識別子
- 変数や型などを区別するための名前。
- 予約語
- 言語で用途が予約され、通常の識別子として使えない語。
- スコープ
- 宣言した名前を参照できる範囲。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。