1. はじめに
今回は、変数と対極的な定数についての解説です。
変数は、値が変わる。
定数は、固定の値。
といった感じですね。
後々に値を変更することが、できないようにするのが定数です。
2. 定数の宣言
では、定数の宣言方法についてみてみましょう。
また、宣言と同時に初期化する方法も紹介します。
public class Main {
public static void main(String[] args) {
// 定数の宣言 & 初期化
final int MAX_VALUE = 100;
}
}
型の前に final というものをつけることで、定数として宣言していることになります。
また、宣言と同時に値を代入し、初期化しています。
3. 定数を使う
定数の使い方については、代入ができないだけで、変数のように値として使うことができます。
例えば、下のように
public class Main {
public static void main(String[] args) {
// 「定数 MAX_VALUE」の宣言 & 初期化
final int MAX_VALUE = 100;
// 「変数 first」の宣言 & 初期化
int first = 200;
// 「変数 second」の宣言
int second;
// 「定数 MAX_VALUE」と「変数 first」を足した値(100 + 200)を「変数 second」に代入
second = MAX_VALUE + first;
// 300 と出力される
System.out.println(second);
}
}
「300」と出力されればオッケーです!
ざっくりと処理の流れは、
定数「MAX_VALUE」と変数「first」を足した値が、変数「second」に代入。
変数「second」を出力する。
といった感じでしょうか。
4. 定数の確認
ちなみに、本当に定数となっているか確認をしてみましょう。
以下のプログラムをコンパイルしてみると、、
public class Main {
public static void main(String[] args) {
// 定数の宣言 & 初期化
final int MAX_VALUE = 100;
// 代入する
MAX_VALUE = 123;
}
}
エラーになりますね。
定数に値を代入しようとするとコンパイル時点でエラーになってしまいます。
後から値を代入することは出来ないってことが分かりました!ヨシヨシ
5. おわりに
定数は、プログラムを書く際に複数箇所に同じリテラルを使うとなった場合に、宣言しておくと非常に便利になります。
例えば、100 回も円周率の 3.14 をリテラルで記述するプログラムがあったとします。
public class Main {
public static void main(String[] args) {
// 3.14 + n (nを100まで書きたい)
System.out.println(3.14 + 1);
System.out.println(3.14 + 2);
// 中略
System.out.println(3.14 + 99);
System.out.println(3.14 + 100);
}
}
ほぼありえないプログラムですけどあくまで例ということで
100 回も書いていれば、そのうち間違える可能性もあります。
(3.15と書いてはコンパイルエラーにもならないので、大変気付きにくい)
さらにもし、3.14159265 と桁数を増やしたくなった場合は、100 箇所修正しなくてはならなくなります。
ですので、定数として宣言しておけば、その定数を使いまわすことでミスも減らせますし、変更したくなった場合は、定数の値を変更するだけでいいので、変更に強くなります。
public class Main {
public static void main(String[] args) {
// 定数「PI」の宣言
final double PI = 3.14;
// 3.14 + n (nを100まで書きたい)
System.out.println(PI + 1);
System.out.println(PI + 2);
// 中略
System.out.println(PI + 99);
System.out.println(PI + 100);
}
}
定数はソースコードの読みやすさ(可読性)にも関わります。
初めから決まった値だと分かっていれば、定数を使うようにしましょう。
次回は「演算子」についての記事を解説します。
以上です。
次回 →「Javaのお勉強 ~その6~ 演算子」