1. 「final」とは? 〜変わらない変数〜
ポイント
final は「この変数の値はあとで変えられません!」という意味です。
つまり、1回だけ値を代入できる特別な変数です。
一度代入したら、上書きできません。
ふつうの変数(変更できる)
int number = 10;
number = 20; // OK! 何度でも変えられる
System.out.println(number); // 20 が出力される
Javafinal 付き変数(変更できない)
final int number = 10;
number = 20; // ❌ エラー!再代入できません!
Java出力前にコンパイルエラー(実行できない)になります。
Javaは「この値は変えないよ」と教えているわけですね。
2. final 変数は「定数」として使う
プログラムの中で、「ずっと同じ値」を使いたいときに便利です。
たとえば「消費税」や「円周率(3.14159)」などは変わりませんよね。
そんなときに使うのが final です。
final double TAX = 0.1; // 税率10%
final double PI = 3.14159; // 円周率
Javaこれで「うっかり値を変えてしまうミス」を防げます。
3. 定数の命名ルール
プログラミングでは、定数の名前を見ただけで「変わらない」とわかるようにするために
次のような書き方のルール(慣習)があります 👇
| 種類 | 書き方の例 | 説明 |
|---|---|---|
| 通常の変数 | price, userName | 小文字で始める(キャメルケース) |
| 定数(final) | TAX_RATE, MAX_COUNT | すべて大文字+単語の区切りは _(アンダースコア) |
final float TAX_RATE = 0.1F;
Java4. 例題:消費税を使った計算
class FinalExample {
public static void main(String[] args) {
final float TAX = 0.1F; // 定数(10%)
float price = 1000 * (1 + TAX);
System.out.println("税込み価格は " + price + " 円です");
}
}
Java実行結果
税込み価格は 1100.0 円です
解説
final float TAX = 0.1F;
→ 「TAX(税率)」は1回だけ値を入れられる。あとから変更しようとするとエラーになります。price = 1000 * (1 + TAX);
→ 税込み価格を計算。System.out.println(...)
→ 結果を出力。
5. final の注意点
| 注意点 | 説明 |
|---|---|
| 🧱 値は1回しか代入できない | 2回以上代入するとコンパイルエラー |
| 🕓 宣言時に値を入れなくてもOK | ただし「1回だけ」あとで代入できる |
| 🔡 名前は大文字+アンダースコアが定番 | 例:MAX_COUNT, TAX_RATE |
宣言後に1回だけ代入する例
class FinalLaterExample {
public static void main(String[] args) {
final int MAX_USER; // まだ値を入れていない
MAX_USER = 5; // ここで初代入(OK)
// MAX_USER = 10; // ❌ エラー!2回目はダメ
System.out.println("最大人数は " + MAX_USER + " 人です");
}
}
Java6. final を使うメリットまとめ
| メリット | 内容 |
|---|---|
| ✅ 意味が分かりやすくなる | ただの数字ではなく、名前がついた値になる |
| ✅ 修正が簡単になる | 値を変えたいとき、1か所直すだけでOK |
| ✅ バグを防げる | 間違って上書きする心配がない |
| ✅ 他人が読んでも安心 | 「この値は変わらない」と明確に伝わる |
7. 練習問題(3問)
問題1
次のコードの実行結果を答えましょう。
final int A = 3;
int B = 5;
System.out.println(A * B);
👉 答え: 15
解説:A=3, B=5、どちらも整数なので3×5=15。
問題2
次のコードはコンパイルできるでしょうか?
final int NUM = 10;
NUM = 20;
System.out.println(NUM);
👉 答え: コンパイルエラー。
解説:final 変数に2回目の代入をしようとしているためエラー。
問題3
定数名として適切なのはどれ?(1つ選ぶ)
A. pi
B. MAX_COUNT
C. TaxRate
👉 答え: B. MAX_COUNT
解説:定数はすべて大文字+アンダースコアで書くのが慣習。
まとめ
| 項目 | 内容 |
|---|---|
final の意味 | 値を1回しか代入できない |
| 使いどころ | 変更しない値(定数)に使う |
| 命名ルール | 大文字+アンダースコア(例:TAX_RATE) |
| 注意点 | 再代入はできない。宣言時または1回だけ代入可 |
次のステップとして、「static final(クラス全体で共有できる定数)」も学ぶと、
「定数の使い方」をより実践的に理解できます。
