【Java初心者】変数の仕組みと定数

Javaの変数の仕組みと使い方について紹介します。
変数はどのような仕組みなのか、どのようにして利用するのかを実際のコード共に解説していきます。

1.変数の仕組み

変数とはデータを格納するための箱のようなものですが、実際にはコンピュータ内部のメモリの1区画を借りているようなイメージです。
変数に値を代入した際には、変数が借りているメモリ上の区画にデータが書き込まれています。

2.基本型と参照型

変数には基本型と参照型があり、値を代入するといった点では同じですが実際に代入された際の構造が異なります。

基本型

変数の基本的なイメージ通り、値が変数の中に直接入っているイメージです。
よく使うデータ型としては、int/double/boolean/charなどが基本型に該当します。

参照型

基本型と違い、値が直接入っているわけではなく値の存在しているメモリ上の住所が変数の中に入っているイメージです。よく使うデータ型としてはString型や配列が該当します。

3.変数の宣言方法

変数宣言とは、変数の型と変数名を決めてメモリ上に変数の領域を確保することです。また、変数宣言には以下の2パターンがございます。

変数の箱を用意すると同時に初期値を設定する

変数の一般的な宣言方法です。変数の宣言と同時に初期値を設定してしまえば、コンパイルエラーや予期せぬ値が入ってしまっているというトラブルを減らすこともできます。

変数の初期化は、一般的に整数値であれば[0]を、参照型のStringであれば[null]を代入します。最初から代入したい値が決まっているのであればその値を入れて問題ありません。

int  number = 0;
String name = nill;
boolean justice = true;

変数の箱を用意しておく

箱を用意するだけで初期値を設定しない状態です。
ただ、この場合にはどこかで必ず初期化をしなくてはいけません。
初期化をしていない状態でその変数を利用しようとするとコンパイルエラーになってしまうので注意が必要です。

以下のコードでは、変数bはif文の中で値の代入を行っていますが、条件式の中を通らなければ値を代入されることなく、出力に利用されてしまうためコンパイルエラーとなってしまいます。
初期化は、必ず行われる処理として記述する。条件式内だけで行われるような記述はしない。ということを意識しておきましょう。

	public static void main(String[] args) {
		int a = 0;
		int b;
		if (a != 0) {                        ⇦ 条件を通らないと初期化できない
			b = 1;
			b = b + 1;
		}
		System.out.println(a);
		System.out.println(b);      ⇦ コンパイルエラー
	}

4.定数とは

定数とは変数と同様に値を入れておく箱のようなものです。
変数との大きな違いは、定数は値を書き換えることができない箱だという点です。例えば、消費税や円周率などは基本的に変わることがありません。
それらをソースコードの中で頻繁に使う際は定数を使用します。
初期値を定数に入れておくことで好きな時にすぐ利用できるだけでなく、計算の段階で間違って値を書き換えてしまう心配がなくなり、安全なソースコードを記述することができます。

定数の宣言を行う場合には、変数宣言の前に[final]をつけるだけです。
値を後から代入して上書きしようとしてもコンパイルエラーになりますので気をつけましょう。

final int tax = 10;
int number = 20;

tax = 8;                        ⇦ 定数には後から代入できないためコンパイルエラー

number = 30;             ⇦ 変数は上書き可能!

 

以上、参考になった方も参考にならなかった方もありがとうございました!