Java道|Javaの変数と識別子の基本

変数は値をしまう箱、識別子は箱につける名前。Javaの基本の型を身につけて、次の修行へ進もう

第2章では、文字や数値を画面に表示する方法を学びました。そこでは、Javaに書いた内容をそのまま表示することが中心だったため、「コードに書いたものが画面に出る」という流れを比較的イメージしやすかったと思います。

ここからは、Javaがよりプログラムらしく動くための大切な考え方に入っていきます。その第一歩になるのが、変数と識別子です。

鬼を討つ剣士が、任務の途中で持ち物を管理したり、仲間の名前を覚えたり、状況に応じて技を使い分けたりするように、プログラムも値を一時的に覚えたり、あとで取り出したりしながら動いていきます。この「値を覚えておくしくみ」が変数です。

そして、変数を使うには、それぞれに名前をつける必要があります。この名前として使われるのが識別子です。識別子にはJavaのルールがあり、正しく名前をつけることで、コードが動くだけでなく、読みやすく理解しやすいプログラムになります。

変数と識別子は、Javaの学習で何度も登場する基本です。ここでしっかり意味をつかんでおくと、このあと学ぶ型、代入、初期化、キーボード入力なども自然につながって見えてきます。まずは、変数とは何か、識別子とは何かを、鬼滅の刃風の修行イメージに置き換えながら、やさしく整理していきましょう。

変数とは値を記憶しておくしくみ

変数とは、プログラムの中で値を記憶しておくためのしくみです。

鬼殺隊風にたとえるなら、変数は任務中に使う道具箱のようなものです。回復薬の数、敵までの距離、仲間の人数、得点、入力された値などを、一時的にしまっておく場所だと考えるとわかりやすいです。

プログラムは、ただ決まった文字や数値を表示するだけではありません。途中で値を覚えたり、計算結果を保存したり、あとでその値を使ったりしながら動いていきます。

たとえば、次のような場面で変数が役立ちます。

場面変数の役割
入力された数値を使いたい入力値を一時的に記憶する
計算結果をあとで使いたい結果を保存しておく
同じ値を何度も使いたい変数名を使って値を呼び出す
条件によって処理を変えたい判断に使う値を保持する

変数という言葉は少しかたく感じるかもしれませんが、最初は「値を入れておく箱」と考えると理解しやすいです。

ただし、本当にコンピュータの中に箱が置いてあるわけではありません。実際には、メモリという記憶領域を使って値を保存しています。箱という考え方は、学習しやすくするためのイメージです。

変数とメモリの関係

変数を理解するうえで大切なのが、メモリです。

メモリとは、プログラムが動いているあいだに、値を一時的に記憶しておく場所です。コンピュータは、数値や文字などの情報をメモリに置きながら処理を進めます。

鬼殺隊の任務で考えると、メモリは大きな補給倉庫のようなものです。その中に、任務で使う道具や情報が一時的に保管されています。変数は、その倉庫の中の特定の場所を使って、値を覚えておくためのしくみです。

用語イメージ役割
メモリ補給倉庫値を一時的に保存する場所
変数名前付きの道具箱値を保存してあとで使えるようにする
道具や情報数値、文字、文字列などのデータ

大切なのは、変数は単なる名前ではなく、値を保持するためにメモリを使うしくみだということです。

学習の入り口では、次のように考えると十分です。

考え方内容
メモリ値を保存する場所
変数メモリ上の値を扱いやすくするしくみ
変数名その値を呼び出すための名前
値の利用保存した値をあとから取り出して使う

変数があることで、プログラムは値を覚えながら処理できます。これにより、ただ固定された表示をするだけでなく、入力や計算結果に応じて動くプログラムへ進めるようになります。

変数はハコのように考えるとわかりやすい

変数は、よくハコにたとえられます。

これはとてもわかりやすい考え方です。ハコの中に物を入れておき、必要なときに取り出すように、変数にも値を入れておき、あとで使うことができます。

鬼滅の刃風にたとえるなら、変数は剣士が持つ専用の小箱です。

小箱には、任務中に必要な情報を入れておけます。たとえば、敵の数、残り体力、獲得した点数、仲間の名前などです。そして、その小箱には名前札がついているため、どの箱に何が入っているのかを区別できます。

変数の動きハコのイメージ
値を保存するハコに物を入れる
値を使うハコの中身を取り出す
値を変更するハコの中身を入れ替える
変数名を使う名前札を見てハコを選ぶ

このイメージのよいところは、プログラムの流れが見えやすくなることです。

「値を受け取る」「保存する」「あとで使う」という流れを、目に見える形で考えられます。

ただし、実際のコンピュータの内部では、ハコではなくメモリに値が記録されています。ハコはあくまで理解を助けるイメージですが、初学者の段階ではとても役に立ちます。

図:変数をハコとしてイメージ

↓クリックすると拡大表示されます。

この図が示していること

この図は、変数が値を一時的に保存し、あとで取り出して使うためのしくみであることを示しています。

入力された値や計算結果は、すぐに消えてしまうのではなく、変数に入れておくことで後から利用できます。

この図から分かること

変数は、値を扱うための基本的なしくみです。

値を受け取る、保存する、必要なときに使うという流れが見えるようになると、プログラムがどのように情報を扱っているのかを理解しやすくなります。

識別子とは変数につける名前

変数を使うには、値を入れる場所があるだけでは足りません。

どの変数を使うのかを区別するために、それぞれの変数に名前をつける必要があります。この名前として使われるのが識別子です。

鬼殺隊風にたとえるなら、識別子は道具箱につける名前札です。名前札がなければ、どの箱に何が入っているのかわかりません。回復薬の箱なのか、任務記録の箱なのか、得点を入れる箱なのかを区別するために、名前が必要になります。

用語役割
変数値を記憶するしくみ
識別子変数などにつける名前
変数名変数を区別するための識別子
名前の目的どの値を扱うのか分かりやすくする

識別子は、ただ好きな文字を並べればよいわけではありません。Javaのルールに従って作る必要があります。

つまり、識別子は「人間が読みやすい名前」であると同時に、「Javaが正しく理解できる名前」でなければなりません。

識別子の役割

識別子の役割は、どの変数なのかを区別できるようにすることです。

プログラムの中で扱う値が1つだけなら、名前の重要性はあまり感じないかもしれません。しかし、実際のプログラムではたくさんの値を扱います。

たとえば、年齢、点数、合計、平均、入力値、結果など、意味の違う値がいくつも登場します。

扱う値識別子があることで分かること
年齢人の年齢を保存していると分かる
点数テストやゲームの点数だと分かる
合計複数の値を足した結果だと分かる
平均平均値を表していると分かる
入力値ユーザーが入力した値だと分かる

識別子があることで、プログラムを書く人も読む人も、その変数が何のために使われているのかを理解しやすくなります。

変数名を適切につけることは、単にエラーを防ぐためだけではありません。コードの読みやすさ、修正のしやすさ、他の人との共同作業のしやすさにも大きく関係します。

識別子の基本ルール

識別子には、Javaで決められた基本ルールがあります。

ここはとても大切です。名前として自然に見えても、Javaのルールに合わなければ識別子として使えません。

ルール内容
使用できる文字通常、英字・数字・アンダースコア _・$ などを使う
長さ長さに制限はない
キーワードJavaが予約しているキーワードは使えない
先頭文字数字ではじめることはできない
大文字小文字区別される

特に注意したいのは、数字ではじめることができない点です。

また、class や return のように、Javaが文法上の意味を持つ言葉として予約しているものは、変数名として使えません。これらはキーワードと呼ばれます。

さらに、大文字と小文字は区別されます。たとえば、name と Name は別の識別子として扱われます。見た目が似ていても、Javaにとっては違う名前です。

正しい識別子と正しくない識別子

識別子のルールは、実際の例で見ると理解しやすくなります。

識別子として正しい例

識別子理由
a英字ではじまっている
abc英字だけで構成されている
ab_cアンダースコアが使われている
F1英字ではじまり、あとに数字が続いている

これらは、Javaのルールに合っているため、識別子として使うことができます。

識別子として正しくない例

識別子理由
12a数字ではじまっている
returnJavaのキーワードである
is-aハイフンは識別子に使えない

ここで気をつけたいのは、人間には名前らしく見えても、Javaでは認められない場合があることです。

たとえば、is-a のように単語をハイフンでつなぐ表現は、文章では自然に見えるかもしれません。しかし、Javaの識別子としては使えません。

Javaでは、名前の見た目だけでなく、文法ルールに合っているかどうかが重要です。

図:識別子は変数につける名前札

↓クリックすると拡大表示されます。

この図が示していること

この図は、変数には名前が必要であり、その名前として使われるものが識別子であることを示しています。

num という名前札がついていることで、プログラムの中でその変数を区別して扱えるようになります。

この図から分かること

識別子は、ただの文字列ではありません。

Javaのルールに従って作られた名前であり、変数を指定するための大切な目印です。正しい識別子を使うことで、プログラムはどの変数を扱えばよいのかを判断できます。

変数を使う前に決めること

変数を扱うためには、最初に大きく2つのことを決める必要があります。

1つ目は、変数の名前です。これが識別子です。

2つ目は、変数の型です。型は、その変数にどのような種類の値を入れるのかを示します。

決めること内容
変数の名前どの変数なのかを区別する
変数の型どの種類の値を入れるのかを決める

鬼殺隊の道具箱で考えると、名前札だけでなく、その箱に何を入れるためのものなのかも決めておく必要があります。

薬を入れる箱なのか、任務記録を入れる箱なのか、刀の手入れ道具を入れる箱なのかが決まっていれば、使い方を間違えにくくなります。

Javaでは、何を入れる変数なのかをはっきり決めてから使うという考え方が基本です。これは、Javaがきちんとしたルールのもとで動く言語であることを表しています。

わかりやすい変数名が大切な理由

変数名は、Javaのルールを守っていれば何でもよいというわけではありません。

実際には、見ただけで意味が伝わる名前をつけることがとても大切です。

鬼殺隊の任務で考えてみましょう。道具箱に「箱1」「箱2」「箱3」とだけ書かれていたら、中身を確認しないと何が入っているかわかりません。けれど、「回復薬」「地図」「任務記録」と書かれていれば、すぐに目的のものを取り出せます。

変数名も同じです。

変数名の考え方読みやすさ
意味がわかる名前何の値か理解しやすい
極端に短すぎる名前役割が分かりにくいことがある
用途と関係ない名前読む人が混乱しやすい
統一感のある名前コード全体が読みやすくなる

プログラムは、自分だけが読むとは限りません。将来の自分が読み返すこともありますし、チームで開発する場合は他の人も読みます。

そのため、変数名には「正しい」だけでなく、「わかりやすい」ことも求められます。

変数名のつけ方の慣習

変数名には自由さがありますが、実際の開発では慣習に従うことも大切です。

Javaでは、変数名は英小文字から始めることが一般的です。複数の単語を組み合わせる場合は、読みやすくなるように工夫します。

ここでは具体的なサンプルプログラムは出しませんが、考え方としては「意味が伝わる」「読みやすい」「統一感がある」名前を選ぶことが重要です。

意識すること内容
英小文字を基本にするJavaらしい自然な書き方になる
意味が伝わる名前にする何の値か分かりやすい
書き方をそろえるコードに統一感が出る
短さだけを優先しない読みやすさを大切にする

変数名は、プログラムの読みやすさを大きく左右します。

名前が整っているコードは、読む人にやさしいコードです。初心者のうちから、わかりやすい変数名を意識しておくと、あとで長いプログラムを書くときに大きな力になります。

変数と識別子の関係

変数と識別子は、セットで考えると理解しやすいです。

変数は値を記憶するしくみです。識別子は、その変数につける名前です。

項目役割鬼滅の刃風のイメージ
変数値を保存する道具箱
識別子変数を区別する名前名前札
メモリ値を置いておく場所補給倉庫
保存されるデータ道具や情報

この関係がわかると、変数を使う意味がはっきりしてきます。

ただ値を保存するだけではなく、その値に名前をつけて扱えるようにすることで、プログラムは複数の値を整理しながら処理できるようになります。

変数と識別子を学ぶ意味

変数と識別子は、Javaの基本の中でも特に重要です。

変数がわかると、プログラムが値をどのように覚え、どのように使っているのかが見えてきます。識別子がわかると、変数をどのように区別し、どのように名前づけしているのかが理解できます。

学ぶ内容身につく力
変数値を保存して使う考え方
メモリ値が一時的に保持されるイメージ
識別子名前で変数を区別する考え方
識別子のルール正しい名前をつける力
変数名の慣習読みやすいコードを書く意識

最初は、変数は値を入れる箱、識別子はその箱につける名前、と考えて大丈夫です。

この基本イメージをしっかり持っておくと、型、宣言、代入、初期化、キーボード入力といった内容も、ばらばらではなくつながりのある知識として理解しやすくなります。

Javaの修行でいえば、変数と識別子は、これから本格的な技を使うための基礎の構えです。ここをしっかり押さえることで、次の学習に安心して進めるようになります。