識別子と予約語を理解する

識別子は変数・クラス・メソッドなどへ付ける名前です。使える文字、予約語との区別、大文字小文字、名前を使える範囲を理解すると、コードを実行する前に見つかる命名上の誤りを判断できます。

この単元で学ぶこと

  • 識別子として使える名前を判断する
  • 予約語とリテラルと型推論の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の命名慣習を文法上の強制と混同しない。
  • 名前の似た別変数を同じものとして読まない。

用語解説

識別子
変数や型などを区別するための名前。
予約語
言語で用途が予約され、通常の識別子として使えない語。
スコープ
宣言した名前を参照できる範囲。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。