こんにちは、現役SEの「とも」です。
今回は、Javaの定数についてです。
定数とは、中身の書き換えができない変数のことを言います。
定数にする方法は簡単で、これまで定義してきた変数に「final」のキーワードを付けるだけです。
final String DISPLAY_MSG = "こんにちは!";
定数名の命名規則は一般的に、大文字の「スネークケース」が使用されます。
定数の初期化は定数の宣言時に行い、宣言時以外に値を代入しようとしてもエラーになります。
final String DISPLAY_MSG = "こんにちは!";
DISPLAY_MSG = "こんばんは!"; ← エラー箇所
【エラー内容】
final のローカル変数 MSG には代入できません。ブランクでなければならず、複合代入を使用することはできません
また、初期化していない定数を使用する場合もエラーになります。
final String DISPLAY_MSG;
System.out.println( DISPLAY_MSG); ← エラー箇所
【エラー内容】
ローカル変数 MSG が初期化されていない可能性があります
勉強中の方のよくある疑問
勉強中の方は、わざわざ定数の宣言しなくても、変数のまま定数として使えばいいのでは?
と思ってしまう方もいるかもしれませんね。
たしかに、変数のまま定数として扱うことはできます。
ただ、個人で趣味の開発をする分には良いかもしれませんが、チームで開発する場合には自分以外の人もソースを触るので、誤って定数の上書きをしてしまうかもしれません。
そのようなことになると、なかなか見つからないバグに発展する可能性があります。
個人で開発していたとしても、ずっと昔のソースを触る場合、忘れてしまっていることもザラにあります。
やはり定数は定数の宣言として定義しておくことで、トラブルの種を事前に取り除いておくことができます。
そのような訳で、定数には「final」のキーワードを付ける、「スネークケースの大文字で命名する」というお作法を身につけると良いと思います。