変数って何だろう?

Javaなどのプログラミング言語では変数という言葉がよく出てきます。変数とは、その名の通り「変わりうる数」のことです。名前のついた箱を定義して、具体的な値をそこに保存しておくことができます。このようなイメージが変数です。
中身はコードを書く途中で入れ替えることもでき、可読性を高める上で非常に重要な存在になってきます。
イメージが掴みにくい人のために、もう少し簡単な例で説明します。
変数を日常生活にあるもので例えると、おもちゃ箱のようなものと考えるのが良いでしょう。「ガンダムを入れる箱」という名前のつけられた箱がここにあるとします。ガンダムのおもちゃを買ってきた子供はここにそのおもちゃを入れます。数ヶ月後、別のガンダムのおもちゃを買ってきた子供は箱には1つのおもちゃしか入れることができないので、昔買ったガンダムのおもちゃを捨てて、新しいガンダムのおもちゃを入れました。
ここでいう「ガンダムのおもちゃを入れる箱」のことが変数になります。子供がおもちゃの中身を入れ替えたように変数は中身を上書きすることもできます。また、ここでは紹介しませんでしたが、変数には1つ以上のものを入れることもできます。
プログラミングを扱う上で変数は避けられない存在なので徐々になれるようにしましょう。
変数の宣言・初期化

それでは、変数を実際のコードで書く方法を学習していきましょう!
変数の宣言
まずは変数の宣言です。変数を利用するためには変数を宣言する必要があります。「ガンダムという名前のついた箱」を用意するとイメージしてください。ここでは中身はまだ何も入っていません。以下のような形で宣言します。
【公式】
データ型 変数名;
//変数の宣言
String name;
こうすることでnameという名前のついた箱を用意することができます。
変数の初期化
箱を用意(宣言)したら、次は初期化を行なっていきましょう。初期化とは用意した変数に最初の値を設定することです。(ガンダムの箱の中に、実際におもちゃを入れていく作業を指します。)初めてプログラミングを学ぶ人は初期化と聞くと「0」にする。とイメージしてしまう人も多いかも知れませんが、初期化は「初めの値をセットする」というふうに覚えましょう。
【公式】
変数名 = 値;
//変数の宣言
String name;
//変数の初期化
name = "プログラミング";
宣言と初期化を同時に実行
今まで変数と宣言を分けて記述してきましたが、宣言と初期化は同時に行うことも可能です。こちらのほうが使用頻度が多いため、覚えていきましょう!逆に変数の宣言と初期化を別々に行う場合はスコープによる影響があるときなどに使用することが多いです。実際にコードを書くようになると、わかるようになってくるので初めのうちは「ふーん」程度に覚えておくと良いでしょう。
【公式】
データ型 変数名 = 値;
//変数の宣言
String name;
//変数の初期化
name = "プログラミング";
//宣言と初期化を同時に行う
String name = "プログラミング";
変数の上書きと自己代入

次に変数の上書きと自己代入を学習していきましょう。どちらも重要な概念なので、実際にコードを書きながら学習することをお勧めします。
変数の上書き
はじめにガンダムの例のところで示したように、変数は上書きすることができます。プログラミングを書く際は条件によって、変数の中身を更新することがあるので上書きはできるということは頭の片隅に置いておきましょう。
【公式】
変数名 = 式;(データ型は不要)
//宣言と初期化を同時に行う
String name = "プログラミング";
//変数の上書き
name = "私はプログラマー";
これを実行するとnameには「私はプログラマー」という値が詰まっていることがわかります。
自己代入
変数では一度宣言・初期化したものに自分を再度値を代入することも可能です。これを自己代入と言います。式では以下のように書くことができます。
//宣言と初期化を同時に行う
String name = "プログラミング";
//自己代入
name = name + 10;
自己代入は省略して書くことも可能です。自己代入を省略することで、記述量を少なく簡単に書くことができるのでしっかりと覚えましょう!
通常系 | 省略型 |
name = name + 10; | name+=10; |
name = name – 10; | name-=10; |
name = name * 10; | name*=10 |
name = name / 10; | name/=10; |
変数の応用を知る

変数に関する事前知識がついたところで、変数に関してさらに詳しくなっていきましょう!
変数の種類
一口に変数といっても大きく2つの種類に分けることができます。ローカル変数とメンバ変数の2種類です。
メンバー変数
まずはメンバ変数です。メンバ変数はクラス直下に記述した変数のことを指します。別名「フィールド」とも呼ばれており、アクセス修飾子をつけることができるという点が特徴です。以下のように書くことができます。カプセル化の概念から、一般的にメンバ変数はprivateで記述されることが多いです。
public class Sample(){
//メンバ変数の例
private String name;
}
ローカル変数
ローカル変数はメソッドの中に記述する変数のことです。メソッド内でしか利用されないので、アクセス修飾子を記述することはできないというのが特徴です。
public class Sample(){
public void sample() {
//ローカル変数
String name = 10;
}
}
変数のデフォルト値
型 | デフォルト値 |
---|---|
真偽型 | false |
整数型 | 0 |
浮動小数点型 | 0.0 |
文字型 | \u0000 |
参照型 | null |
変数は宣言した段階でデフォルトの値を持ちます。特にbooleanなどはよく利用するので覚えておきましょう。
識別子と予約後
最後に識別子と予約語に関して学習しましょう。
識別子
識別子とはエンジニアが任意で名前をつけるもののことを指します。主にパッケージ名、クラス名、メソッド名、変数名などの4つが該当します。
よって変数名も識別子の一つです。識別子に名前をつける時には、3つのルールがあります。① 予約語を使うことはできない。② 使える記号は「;_ $」のみ。③ 数字から始めてはならない。以上の3つです。
これらのルールを守らないとコンパイルエラーになってしまうので気を付けましょう。
予約後
予約後とはステートメント、修飾子、プリミティブ型などJava固有の意味を持つもののことを指します。予約語の種類は全部で50こです。
予約語(五十音順) |
abstract |
assert |
boolean |
break |
byte |
case |
catch |
char |
class |
const |
continue |
default |
do |
double |
else |
enum |
extends |
final |
finally |
float |
for |
goto |
if |
implements |
import |
instanceof |
int |
interface |
long |
native |
new |
package |
private |
protected |
public |
return |
short |
static |
strictfp |
super |
switch |
synchronized |
this |
throw |
throws |
transient |
try |
void |
volatile |
while |
Javaに触れるうちに何が予約語かはわかってくるので、これからJavaを学習する人は軽く目を通しておく程度で大丈夫です。徐々に覚えていきましょう!
最後に
いかがだったでしょうか?以上がJavaの変数名に関する内容でした。これだけの知識をもっていれば試験の変数の単元には対応できるので、この記事の内容をしっかり覚えておくようにしましょう!