
Java入門|変数と識別子
値をしまうしくみがわかると、Javaがぐっと身近になる
第2章では、文字や数値を画面に表示する方法を学びました。ここまでは、Javaに書いた内容をそのまま表示することが中心だったため、比較的イメージしやすかったのではないでしょうか。
ここからは、いよいよプログラムらしい考え方に入っていきます。その第一歩になるのが、変数と識別子です。
プログラムは、ただ決まった文字や数値を表示するだけではなく、途中で値を覚えたり、あとでその値を使ったりしながら動いていきます。たとえば、入力された数値を一時的に覚える、計算結果を保存する、条件によって別の処理に使う、といった流れです。このような処理を支えているのが変数です。
また、変数を使うには、それぞれに名前をつける必要があります。この名前として使われるのが識別子です。識別子のつけ方にはルールがあり、そのルールを理解しておくことは、正しいコードを書くためだけでなく、読みやすくわかりやすいプログラムを書くためにもとても大切です。
このあと見ていく変数と識別子は、Javaの学習を進めるうえで何度も登場する基本事項です。ここでしっかり意味をつかんでおくと、今後学ぶ型、代入、初期化、キーボード入力といった内容も自然に理解しやすくなります。まずは、変数とはどのようなしくみなのか、そして識別子とは何かを、イメージを大切にしながら順番に見ていきましょう。
変数とは何か
変数とは、プログラムの中で値を記憶しておくためのしくみです。
プログラムを実行するとき、コンピュータは必要な値を一時的に覚えながら処理を進めています。人が何かを作業するとき、必要な数字をメモしておいてあとで使うことがありますが、それに少し似ています。プログラムでも、入力された値や計算途中の結果などを覚えておかないと、あとで利用することができません。
そこで使われるのが変数です。変数を使うと、値をいったん保存しておき、必要になったときにその値を取り出して使うことができます。
たとえば、ユーザーが入力した数値を画面に表示する場面を考えてみると、入力された数値をどこかに記憶しておかなければ表示できません。このとき、入力された数値を記憶する役割をもつのが変数です。
変数という言葉だけを見ると少しかたく感じるかもしれませんが、最初は「値を入れておくための入れもの」と考えるとわかりやすいです。あとから必要になる値を入れておく箱のようなもの、とイメージすると理解しやすくなります。
変数とメモリの関係
変数を理解するうえで大切なのが、メモリという考え方です。
コンピュータの内部には、さまざまな値を一時的に記憶しておくためのメモリがあります。プログラムが動いているあいだ、このメモリの領域を使って数値や文字などの情報を保持しています。変数は、このメモリを利用して値を記憶するしくみです。
つまり、変数そのものが独立した物体のように存在しているというよりは、変数という名前を通して、メモリ上の値を扱っていると考えると本質に近づきます。
学習のはじめの段階では、次のようにイメージすると十分です。
- メモリは値を保存する場所
- 変数はその場所を使って値を覚えるためのしくみ
- 変数を使うことで、あとからその値を利用できる
このように考えると、変数はプログラムの中で値を管理するための基本機能だとわかります。
変数はハコのように考えるとわかりやすい
変数はよく、ハコのようなものとして説明されます。これは学習の入り口としてとてもよい考え方です。
ハコの中に値を入れるように、変数に値を記憶させることができます。そして、必要なときにはそのハコの中身を使うことができます。たとえば、数値を記憶する変数には数値を入れ、文字を記憶する変数には文字を入れる、というイメージです。
この考え方のよいところは、プログラムの処理の流れが見えやすくなることです。値を受け取る、保存する、あとで使う、という動きを、目に見えるように想像しやすくなります。
ただし、実際のコンピュータの内部では本当に箱があるわけではありません。あくまで、メモリに値を記録している状態を、理解しやすくするためのイメージです。それでも、初学者の段階ではこのイメージが非常に役に立ちます。
図でイメージする変数
変数の考え方は、図にするととてもわかりやすくなります。

この図では、コンピュータの内部にあるメモリの一部を、変数という形で利用していることを表しています。
この図を通して理解しておきたいのは、変数は単なる名前ではなく、値を保持するための役割をもっているということです。プログラムは、その変数に値を入れたり、取り出したりしながら処理を進めていきます。
識別子とは何か
変数を使うには、ただ値を入れる場所があるだけでは足りません。どの変数を使うのか区別するために、それぞれの変数に名前をつける必要があります。この名前として使われるのが識別子です。
識別子とは、変数やその他の要素につける名前として使える文字の組み合わせのことです。num も識別子のひとつです。
ここで大切なのは、識別子は単なる思いつきの文字列ではなく、Javaのルールに従って作られた名前だということです。好きな名前をつけられるとはいっても、何でも自由というわけではありません。Javaが決めている約束を守る必要があります。
変数を使うときには、まずこの識別子を決めて、その識別子を通して変数を扱っていきます。つまり、識別子は変数の名前であり、プログラムの中でその変数を呼び出すための目印でもあります。
識別子の役割
識別子の役割は、とてもシンプルです。どの変数なのかを区別できるようにすることです。
たとえば、プログラムの中に記憶する値がひとつしかないなら、名前の必要性はあまり感じないかもしれません。しかし、実際のプログラムではたくさんの値を同時に扱います。年齢、点数、合計、平均、入力値、結果など、それぞれ別々の意味をもつ値が存在します。
そのため、どの値が何を表しているのかを区別できる名前が必要になります。識別子があることで、プログラムを書く人も読む人も、この変数が何のためのものなのかを理解しやすくなります。
変数名を適切につけることは、単にエラーを防ぐためだけではありません。プログラム全体の読みやすさや保守のしやすさにも大きく関係します。わかりやすい識別子をつけることは、よいプログラムを書くうえでとても大切な習慣です。
識別子のルール
識別子には、いくつかの基本的なルールがあります。ここはとても大事な部分なので、整理して確認しておきましょう。
| ルール | 内容 |
|---|---|
| 使用できる文字 | 通常、英字・数字・アンダースコア _・$ などを使う |
| 長さ | 長さに制限はない |
| キーワード | Javaが予約しているキーワードは使えない |
| 先頭文字 | 数字ではじめることはできない |
| 大文字小文字 | 区別される |
この表の内容は、変数名を考えるときの基本になります。特に注意したいのは、数字ではじめられないこと、そしてキーワードは使えないことです。
Javaには、return や class のように、もともと特別な意味をもつ単語があります。これらはJavaの文法の一部として予約されているため、変数名として使うことはできません。
また、大文字と小文字が区別される点も重要です。たとえば、name と Name は別のものとして扱われます。見た目は少し似ていても、Javaにとっては異なる識別子です。この違いを意識していないと、思わぬミスにつながることがあります。
正しい識別子と正しくない識別子
識別子のルールは、実際の例を見るとさらに理解しやすくなります。
識別子として正しい例
| 識別子 | 理由 |
|---|---|
| a | 英字ではじまっている |
| abc | 英字だけで構成されている |
| ab_c | アンダースコアが使われているが問題ない |
| F1 | 英字ではじまり、あとに数字が続いている |
これらは、いずれもJavaのルールに合っているため、変数名として使うことができます。
識別子として正しくない例
| 識別子 | 理由 |
|---|---|
| 12a | 数字ではじまっている |
| return | Javaのキーワードである |
| is-a | ハイフンのような特殊な文字は使えない |
このように、見た目には名前として使えそうでも、Javaの規則に反していると識別子にはできません。
ここで特に気をつけたいのは、普段の文章では自然に見える記号が使えないことがある点です。たとえば is-a のように単語を記号でつないだ表記は、人間には読みやすく感じられるかもしれませんが、Javaでは識別子として認められません。
図でイメージする識別子

この図では、変数そのものに num という名前がついていることを表しています。ここでのポイントは、変数を使うときには、その変数に名前をつけて区別する必要があるということです。
num はただの文字列ではなく、Javaのルールに従って作られた識別子です。そして、その識別子が変数の名前として使われています。こうして名前があることで、プログラムの中でその変数を指定して扱えるようになります。
変数を使う前に決めること
変数を扱うためには最初に2つのことを決める必要があります。
1つ目は、変数に名前をつけることです。これが識別子です。
2つ目は、変数の型を指定することです。
ここでは主に変数と識別子がテーマですが、この2つがセットで必要になるという点はとても重要です。なぜなら、Javaでは何を入れる変数なのかをはっきり決めてから使う、という考え方が基本だからです。
つまり、どんな名前の変数にするのか、そしてその変数にはどんな種類の値を入れるのか、この2点を明確にしておく必要があります。これが、Javaがしっかりしたルールのもとで動く言語であることの表れでもあります。
わかりやすい変数名が大切な理由
変数名は、ルールを守っていれば何でもよいというわけではありません。実際には、見ただけで意味が伝わる名前をつけることがとても大切です。
たとえば、ある変数が点数を記憶するためのものなら、その役割がわかる名前にしておくと、あとでコードを読んだときに理解しやすくなります。逆に、意味のわかりにくい短い名前ばかり使ってしまうと、何を保存している変数なのかがわからなくなり、読みづらいコードになってしまいます。
プログラムは、自分だけが読むものとは限りません。将来の自分が読み返すこともありますし、複数人で開発する場合には他の人も読むことになります。そのため、変数名には役割が伝わるわかりやすさが求められます。
どのような値を記憶する変数なのか、はっきりわかる名前を選ぶことが大切です。これは初心者の段階から意識しておくと、とてもよい習慣になります。
変数名のつけ方の慣習
変数名には自由さがありますが、実際の開発では慣習やルールに従って名前をつけることも大切です。変数の名前は英小文字を使うことが一般的です。
この考え方は、Javaのコードを読みやすく整えるうえでとても重要です。みんなが同じようなルールで名前をつけていれば、コード全体に統一感が生まれます。統一感のあるコードは、それだけで理解しやすくなります。
たとえば、変数名に毎回ばらばらの書き方をしてしまうと、見た目にも落ち着かず、読み手が混乱しやすくなります。英小文字を基本にするという慣習は、そうした混乱を防ぎ、自然で読みやすいコードを書くための助けになります。
また、単にルールを守るだけでなく、用途に応じてわかりやすく整理された名前をつける姿勢も大切です。変数名は短ければよいというものではなく、意味が伝わることが重要です。この感覚は、今後さらに長いプログラムを書くようになったときに大きな力になります。
変数と識別子を学ぶ意味
変数と識別子は、Javaのごく基本の内容ですが、ここをしっかり理解しておくことで、その後の学習がかなり進めやすくなります。
変数がわかると、プログラムが値をどのように扱っているのかが見えてきます。識別子がわかると、変数をどのように区別し、どのように名前づけしているのかが理解できます。この2つが結びつくことで、プログラムの読み方も書き方も少しずつ身についていきます。
特にJavaでは、あいまいに書くのではなく、何をどのように扱うのかを明確に記述していくことが大切です。その入口として、変数と識別子の考え方はとても重要です。
最初のうちは、変数は値を入れる箱、識別子はその箱につける名前、とシンプルに捉えて大丈夫です。この基本イメージをしっかり持っておくと、これから学ぶ型、宣言、代入、初期化、キーボード入力といった内容も、ばらばらではなくつながりのある知識として理解しやすくなります。
