本文へスキップ
BecomeCoder

Java文法コース · 第2章 変数と型 ― データを入れる箱 · レッスン8

var と final ― 型推論と定数

ブラウザで完結

導入

毎回型を書くのが少し面倒に感じてきたかもしれません。型を省略できる var と、逆に「変わらない値」を守る final を紹介します。

説明

var を使うと、右辺の値から型を自動で推論してくれます(Java 10以降)。

public class Main {
    public static void main(String[] args) {
        var name = "Java";     // String と推論される
        var year = 2024;       // int と推論される
        var pi = 3.14;         // double と推論される
        System.out.println(name);
        System.out.println(year);
        System.out.println(pi);
    }
}

var でも型がなくなるわけではありません。あくまで「コンパイラが型を推論してくれる」だけで、year は最初から最後まで int です。別の型の値は入れられません。

final をつけると、その変数一度だけ値を入れられる定数 になります。あとから変えようとするとエラーになります。

public class Main {
    public static void main(String[] args) {
        final int MAX = 100;
        System.out.println(MAX);
        // MAX = 200;  // ← これはエラーになる(final は変更できない)
    }
}

「絶対に変わってほしくない値」(消費税率、上限など)に final をつけておくと、うっかり書き換えるミスを防げます。定数の名前は慣習として すべて大文字MAX_SIZE など)にします。

やってみよう

下のエディタで var を使って変数を宣言し、表示してみましょう。final をつけた変数に再代入するとエラーになることも確かめてください。

演習

final double の定数 TAX1.1)を作り、int price500)に掛けた税込み価格を表示してください(結果は 550.0)。

ヒント1を見る

final double TAX = 1.1; int price = 500; と宣言します。

ヒント2を見る

price * TAX は double になります。System.out.println(price * TAX);

実際に動かしてみよう

下のエディタにJavaを書いて「実行」を押すと、学習用シミュレータが System.out.println の出力を表示します(本物のJVMではなく、教材の範囲を再現した軽量エンジンです)。クラス・継承・コレクションなども動きます。Scanner で入力を読む例は「標準入力」欄に値を入れてください。本文の例を書き換えて動かしてみましょう(Stream・ラムダ・スレッド・ファイル入出力など一部の機能は対象外です)。

Java — ブラウザ内で実行(学習用シミュレータ)

Javaの教材サブセットを動かす学習用シミュレータを読み込みます(本物のJVMではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。