Javaの変数とは?宣言方法や使い方を現役エンジニアが解説

Javaの変数とは何ですか?意味やどんな役割があるのか、初心者にもわかるように教えて欲しい。
こんなお悩みにお答えします。
本記事をお読みいただければ、Javaの変数についての基本を押さえることができますよ。

僕は現役フリーランスエンジニアです。実務は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)の違いとは
Javaの変数と定数の違いについて解説していきますね。
変数と定数の違い
変数は値を上書きできますが、定数は値を変えられません。
定数は決まった値を入れて、その値を上書きされたくない場合に使用します。
定数は下記の様に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の変数について解説しました。
プログラミングで変数はよく使われますので、繰り返し読んで覚えてみてくださいね。
以下記事では、Javaエンジニアの学習ロードマップを解説していますので、ぜひチェックしてみてください。
