要点まとめ
1. finalをつけるとどうなる?
- 一度だけ値を代入できる変数になる
- つまり「定数」として扱える
- 代入後に値を変えようとするとコンパイルエラーになる
final int NUMBER = 10;
NUMBER = 20; // エラー!変更できない
Java2. 代入のタイミング
- 宣言と同時に代入する方法
final float PI = 3.1415F;
Java- 宣言だけして、あとから一度だけ代入する方法
final int SPECIAL_POINT;
SPECIAL_POINT = 100; // ここで初めて代入OK
Java3. なぜ使うの?
- 値を固定できるので、プログラムの信頼性が上がる
- 例えば「消費税率」や「円周率」など、変わらない値を表すのに便利
- 値を直接書くよりも、修正が簡単(1か所直せば全体に反映される)
4. 命名ルール
- 定数として使う場合は すべて大文字
- 複数の単語は アンダースコアで区切る
final int MAX_VALUE = 100;
final float TAX_RATE = 0.1F;
Java5. サンプルコード
この例では、税率 TAX を定数として定義し、料金計算に使っています。
class JSample {
public static void main(String[] args) {
final float TAX = 0.1F; // 消費税率
float price = 800 * (1 + TAX);
System.out.println("料金は" + price + "です");
}
}
Javaなぜ final を使うのか?(メリット)
- 何度も同じ値を使うような「変更されない値」を、定数として明示できるので、プログラムが読みやすくなります。
- 値を直接「数値そのもの」でズラーッと使う代わりに、意味のある名前(例えば
TAX)を使うことで誤記入(ケアレスミス)を減らせます。 - もし将来その “定数” の値を変更したくなったとき(例えば税率が変わったとき)、コード中の “数値そのもの” を探して全部直すよりも、定数変数一か所だけ直せば済む仕組みにできます。
finalを付けることで「この変数はあとで変更されない」という意図が明確になり、プログラムの保守性が高まります。
初心者が注意すべきポイント
finalを付けた変数は「一度だけ値を代入」できます。宣言時に初期値を設定しなかった場合は、あとで 1 回だけ代入が可能です。2 回以上代入しようとするとコンパイルエラーになります。- 命名規則として、定数用途の変数名には すべて大文字+アンダースコア が推奨されます(例:
MAX_COUNT,TAX_RATE)というスタイルを覚えておくと良いです。 finalだからと言って「値が変わらない保証」がどこまでもあるわけではありません。例えば配列やオブジェクトをfinalで宣言した場合、変数自体(参照先)を変更できないという意味で、参照先の中身(配列の要素やオブジェクトのプロパティ)は変更できることがあります(このページでは扱っていませんが、将来知っておくと良いです)。
まとめ
finalをつけると「一度だけ代入できる変数」=「定数」になる- 変更されない値を表すときに使うと便利
- 命名は大文字+アンダースコアが基本
こういう「定数」を使う習慣は、コードを読みやすくしてバグも減らせます。
