プログラミングでは変数が使用されます。変数とは一体何で、どのような役割があるのでしょうか?
今回は、プログラミング言語Javaの変数について解説します。
僕は大阪のWebシステム開発会社で、現役のJavaエンジニアとして勤務しています。
本記事をお読みいただければ、Javaの変数についての基本を押さえることができますよ。
変数はプログラミングをする上で必要不可欠なものですので、この記事で理解を深めてみてください。
Javaの変数の基本概要
まずJavaの変数の基本概要を解説します。
- 変数とは
- 変数のデータ型一覧
- 変数の命名規則
その①:変数とは
変数とは、データを格納しておく場所のことを言います。

よく箱のイメージに例えられますね。
変数に数値や文字列などのデータを入れておくことで、後から変数を使って値を呼び出したり、使い回したりできます。
プログラミングをする上で、変数は必要不可欠です。
その②:変数のデータ型一覧
変数には、数値や文字列、trueやfalseといった真偽値等のデータ型が存在します。
データ型とは、主に下記の通りです。
String | 文字列型 | 4バイト |
int | 整数型 | 4バイト |
boolean | ブーリアン型 | 1バイト |
byte | バイト型 | 1バイト |
short | 短整数型 | 2バイト |
long | 長整数型 | 8バイト |
double | 倍精度浮動小数点数型 | 8バイト |
float | 単精度浮動小数点数型 | 4バイト |
char | 文字型 | 2バイト |
データ型は、どんな値を入れるのかによって使い分けていきます。
Javaでは、Stringとintとbooleanがよく使われますね。
その③:変数の命名規則
変数は、基本的に誰が見てもわかりやすいような名前にすべきです。
とはいえ、わかりやすければいいと言うわけではなく、変数には命名規則があります。
命名規則は下記の通りです。
- 先頭は数字から始めることはできない
- 単語間は先頭を大文字にする
変数は日本語をつけることもできますが、多くの現場では英数字で付けられることが多いです。
Javaの変数の使い方【7STEP】
実際に変数の宣言から、簡単な計算方法について解説していきます。
以下の7STEPで解説します。
- 変数の宣言方法
- 変数の宣言場所
- 変数の初期化
- 変数の上書き
- 変数の比較方法
- 変数で計算する方法
- 変数で足し算などの計算方法
順番に見ていきましょう。
STEP①:変数の宣言方法
変数を使うにはまず、変数の宣言をします。
宣言は、下記のようにします。
データ型 変数名 ;
変数はデータ型を記述した後に、変数名をつけていきます。最後は必ずセミコロン(;)をつけるルールとなっています。
下記は実際の変数宣言の例です。
String str;
int num;
boolean flg;
STEP②:変数の宣言場所
では変数は実際にどこに宣言すればいいのでしょうか?
変数は、フィールド、もしくはメソッドの中に記述します。
class Test1 {
static int num; // ここがフィールド
public static void main(String[] args) {
int num; // ここがメソッドの中
}
}
STEP③:変数の初期化
変数の初期化とは、宣言した変数に初期値を代入することを言います。こちらは下記をご覧ください。
int num;
int num = 0;
上記の通りです。
ちなみに変数の宣言と初期化は、同時にすることもできます。
int num = 0;
一つ注意点としては、クラスのフィールドに宣言した変数は、自動的に初期化される点です。
class Test1 {
static int num;
public static void main(String[] args) {
System.out.println(num);
}
}
上記はフィールドに宣言した変数です。上記を実行すると、初期化を行なっていないですが、値が出力されます。
実行結果:
0
もう一つ、わかりやすい例をあげていきます。
下記は、メソッドの中に宣言した変数です。こちらも初期化を行なっていないですが、先程のフィールドに宣言した変数とは別に、エラーが発生します。
class Test1 {
static int num;
public static void main(String[] args) {
System.out.println(num);
}
}
実行結果:
>javac Test1.java
Test1.java:5: エラー: 変数numは初期化されていない可能性があります
System.out.println(num);
^
エラー1個
フィールドに宣言した変数は、自動的に初期化されます。
そしてメソッドの中に宣言した変数は、自動的に初期化されません。
この違いにより、メソッドの中に宣言した変数はエラーが出てしまったということになります。
もしこれが大規模なシステムとかであれば、大変なことになってしまいますね。
なので変数は必ず使う時だけ宣言をし、初期化をしておきましょう。
そして使わなくなった変数は、消しておきましょう。
STEP④:変数への値の代入方法
変数に値を代入する方法についてみていきましょう。
class Test1 {
static int num;
public static void main(String[] args) {
num = 10;
System.out.println(num);
}
}
上記を解説しますと、フィールドに宣言した変数numに、mainメソッドで10を代入しています。
そしてnumを出力した結果が下記になります。
実行結果:
10
他にも、メソッドで宣言した変数に値を代入することも可能です。
class Test1 {
public static void main(String[] args) {
int num = 0;
num = 100;
System.out.println(num);
}
}
上記はメソッドで変数numを宣言し、同時に初期化を行い、次に100を代入しました。
実行結果:
100
STEP⑤:変数の上書き
変数の上書きについてみていきましょう。
変数は一度値を代入したとしても、同じ変数に再度値を代入することで、値の上書きをすることができます。
class Test1 {
public static void main(String[] args) {
int num = 0;
num = 100;
num = 10000;
System.out.println(num);
}
}
上記は変数numに100を代入した後に、10000を再代入しています。
こうすることで、最初に定義した変数numに入っていた100の値が、10000に上書きされます。
実行結果:
10000
STEP⑥:変数の比較方法
変数の比較方法について解説していきます。
プログラミングでは、変数の値を比較することがよくあります。
たとえば変数Aの値はBよりも大きいかどうか比較したい時とかです。
わかりやすい例をあげるなら、Web画面で入力された年齢が20歳未満かどうかを知りたい時も、比較が用いられますね。
そして変数の比較は、関係演算子というものを使用していきます。
演算子 | 例 | 役割 |
> | a > b | aがbよりも大きければtrue。それ以外はfalseになる。 |
< | a < b | aがbよりも小さければtrue。それ以外はfalseになる。 |
>= | a >= b | aがb以上であればtrue。それ以外はfalseになる。 |
<= | a <= b | aがb以下であればtrue。それ以外はfalseになる。 |
!= | a != b | aとbが等しくない場合はtrue。それ以外はfalseになる。 |
== | a == b | aがbと等しければtrue。それ以外はfalseになる。 |
では実際に比較してみます。
class Test1 {
public static void main(String[] args) {
int a = 10;
int b = 15;
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a >= b);
System.out.println(a <= b);
System.out.println(a != b);
System.out.println(a == b);
}
}
実行結果:
false
true
false
true
true
false
STEP⑦:変数で足し算などの計算方法
変数を使って計算をする方法を解説していきます。
プログラミングで計算をするには、四則演算子を活用していきます。
四則演算とは、足し算や引き算、掛け算や割り算のことです。
演算子 | 役割 |
+ | 足し算 |
- | 引き算 |
* | 掛け算 |
/ | 割り算 |
% | 割り算の余り |
では四則演算を用いて計算を行っていきましょう。
class Test1 {
public static void main(String[] args) {
int a = 6;
int b = 3;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
}
}
実行結果:
9
3
18
2
0
足し算と引き算は簡単ですね。掛け算に関しては、数学では×が用いられますが、プログラミングでは*が使われます。
また%は割り算の余りの値が求められます。
補足ですが=は数学では等しいという意味になりますが、プログラミングでは代入を意味しています。
x = 10;は、数学ではxと10は等しいですが、プログラミングでは10をxに代入するということです。
ここまで理解できれば、基本は押さえられています。変数の使い方は以上です。
Javaの変数と定数(final)の違いとは
変数は値を再代入して、中身の値を変えることができるという解説をしました。
一方、定数は中身の値を変えることができないものになります。
ここでは定数について解説していきますね。
変数と定数の違い
変数は中身の値を上書きすることができますが、定数は値を変えることができません。
定数は決まった値を入れて、その値を上書きされたくない場合に使用します。
定数は下記の様にfinalを付けて定義します。
final データ型 変数名 = 値;
final int a = 6;
では実際に定数を上書きしようとしてみます。
class Test1 {
public static void main(String[] args) {
final int a = 6;
a = 10;
System.out.println(a);
}
}
実行結果:
>javac Test1.java
Test1.java:5: エラー: final変数aに値を代入することはできません
a = 10;
^
エラー1個
上記の通りで、エラーが発生しました。
定数を使うメリット
定数は、クラスやメソッドに使うこともできます。
定数を使うメリットは、クラスを継承されたくない場合や、メソッドをオーバーライドされたくない時に役立つ点です。
開発の規模が大きくなると、予期せぬ代入がされてバグが発生してしまう可能性がでてきます。
そんな時に定数が役に立つということです。
Javaの変数の使い方:まとめ
Javaの変数について解説してまいりました。
プログラミングにおいて変数はよく使われますので、繰り返し読んで覚えてみてくださいね。
今回は以上です。