【Java】『変数=箱』のイメージがしっくりこなかった過去の自分へ贈る解説
はじめに
みなさんどうも、おげんです。
突然ですが、みなさんは「変数」って説明できますか?
Javaを勉強していると幾度となく出てくる言葉ですが、参考書にはよく『データを入れる箱』と書かれています。
ただ私、いざコードを書いている最中に「あれ……そもそも変数ってなんだっけ?」と手が止まってしまうことがよくありました(笑)。
そこで今回は、文系未経験からエンジニアを目指して学習中の私が、変数の仕組みを画像を使って分かりやすく整理してみました!
Javaの勉強をしている方や、プログラミング初心者の方の「モヤモヤ」を解消するヒントになれば嬉しいです。
- プログラミングの参考書を読んでも、イマイチ内容が頭に入ってこない人
- 「変数 = データを入れる箱」という説明に、モヤモヤを感じている人
- 文系出身で、数学のような専門用語に苦手意識がある人
- 「とりあえずコードは書いているけど、実は仕組みをよく分かっていない」という人
- 独学でJavaを学び始めたばかりの初心者さん
変数とは「名前のついた箱」である
「変数」を一番シンプルにイメージするなら、やはり「名前が書かれたラベル付きの箱」だと考えるのが一番分かりやすいです。
プログラムの中で数字や文字を扱いたいとき、そのままバラバラに置いておくと、後で「あれ、あの数字どこに行ったっけ?」と迷子になってしまいます。
そうならないために、専用の箱に入れて保管しておくイメージです。
実際に、先ほどの画像のような状態をJavaのコードで書くとこうなります。
イメージ画像も合わせて見てください。
int name; // ①「name」という名前の、整数を入れるための箱を用意する
name = 456; // ②その箱の中に「456」という数字を入れる
- 箱の名前(変数名): 画像でいう「name」の部分です。自分で好きな名前を付けられます。
- 箱の中身(値): 画像でいう「456」の部分。これが「データ」です。
- 箱の種類(型): ここがJavaの面白い(そして少し厄介な)ところで、
intというのは「この箱には整数しか入れられませんよ」というルールを決めているんです。
なぜ「型(データの種類)」が必要なのか
「そもそも箱の種類なんかあるんだ。」って 勉強し始めの私は、そう思っていました(笑)。
でも、Javaという言語はとにかく「型(データの種類)」に厳しいんです。
なぜわざわざ「これは整数用の箱!」「これは文字用の箱!」と分ける必要があるのでしょうか?
理由は中身に合った「適切な扱い」をするためです。
例えば、引っ越しの荷解きをしている時、中身がわからない段ボールが積み上がっていたらどうなるでしょうか?
- 「食器」が入っているのに、上に重いものを載せて割ってしまう。
- 「大事な書類」が入っているのに、湿気の多い場所に置いてしまう。
これでは困りますよね。
だからこそ、私たちは箱に「食器」「本」「衣類」とラベルを貼って、中身に合った扱いをします。
Javaの世界でも全く同じです。
- 整数用(int)の箱: 「これは数字だから、計算に使っていいよ!」
- 文字用(String)の箱: 「これは文字だから、画面に表示したり繋げたりしよう!」
あらかじめ「箱の種類(型)」を決めておくことで、コンピュータが「あ、これは数字だから足し算できるな」と正しく判断できるようになり、プログラムが予期せぬ動き(バグ)をするのを防いでくれるんです。
型に関しては、別の記事にまとめますので、今は箱は分けないといけないんだなと思ってください。
変数を使う時の2つのステップ(宣言と代入)
Javaで変数を使うには、必ず通らなければいけない2つのステップがあります。 これを新生活の準備に例えるとこんな感じです。
ステップ1:箱を用意する(宣言)
まずは、物を入れるための「箱」を準備します。これをプログラミング用語で「宣言」と呼びます。
int name;この一行は、コンピュータに対して「『name』という名前の、整数(int)を入れるための箱をひとつ置いておいて!」とお願いしている状態です。
この時点では、まだ箱の中身は空っぽです。
ステップ2:箱に中身を入れる(代入)
箱が用意できたら、いよいよ中身を入れます。これを「代入」と呼びます。
name = 456;これでようやく、用意していた「name」という箱に「456」という数字が収まりました。
応用編:最初から中身を入れる(初期化)
「箱を用意して、すぐ中身を入れたい!」というときは、まとめて書くこともできます。
int name = 456;これを「初期化」と言います。
引っ越し初日に、中身が入った状態で届くカラーボックスのようなイメージですね。
補足:プログラミングの「=」は「等しい」じゃない?
ここで、一つだけ注意したいポイントがあります。 Java(プログラミング)で使う「=」は、算数で習った「左と右が同じ」という意味ではありません。
プログラミングの世界では、「右側にあるものを、左側の箱に入れる」という「代入(移動)」の意味になります。
イメージとしては、= ではなく ←(左向きの矢印) だと思うのが正解です!
まとめ:変数は「自分を助けてくれる道具」
今回は、Javaの基本中の基本である「変数」について解説しました。
- 変数は「名前のついたラベル付きの箱」
- 「型」は中身に合わせた「専用の箱」を選ぶルール
- 使うときは「宣言(箱の準備)」と「代入(中身を入れる)」の2ステップ
- 「=」は「等しい」ではなく「右から左へ入れる矢印」
最初は「宣言とか代入とか、用語が難しくてややこしいな」と感じるかもしれません。
でも、新生活の片付けと同じで、「どこに何を置くか」をハッキリさせることが、複雑なプログラムを正しく動かすための第一歩になります。
私自身、4月から東京でのエンジニア生活が始まりますが、仕事でもこの「整理整頓」の気持ちを忘れずにいたいと思います。
最後まで読んでいただき、ありがとうございました!
