Java | final変数(定数のように使う)

Java Java
スポンサーリンク

1. 「final」とは? 〜変わらない変数〜

ポイント

final は「この変数の値はあとで変えられません!」という意味です。
つまり、1回だけ値を代入できる特別な変数です。
一度代入したら、上書きできません。


ふつうの変数(変更できる)

int number = 10;
number = 20; // OK! 何度でも変えられる
System.out.println(number); // 20 が出力される
Java

final 付き変数(変更できない)

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;
Java

4. 例題:消費税を使った計算

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 + " 人です");
    }
}
Java

6. 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(クラス全体で共有できる定数)」も学ぶと、
「定数の使い方」をより実践的に理解できます。

タイトルとURLをコピーしました