👩🏼‍🏫

【Java】varを使った変数宣言

2022/02/20に公開

はじめに

Java Silverの受験にあたって、勉強したことをまとめました。
今回はちょっと短めです!

varと型推論について

  • ローカル変数の宣言時に、データ型を指定せずvarを使って変数を宣言できる
  • varを使用すると、宣言時の右辺の内容から型を推測してくれる(これを型推論という)
  • 型推論はコンパイル時に行われる
  • 初期化で代入される値からデータ型を決定するので、必ず変数の宣言時に初期化すること!
// 今までの書き方
int num = 100;

// varを使った書き方
var num = 100;

// 初期化していないのでコンパイルエラー
var num;

varが使えるところ

  • ローカル変数の初期化
  • 拡張for文内のインデックス
  • 通常for文内で宣言されたローカル変数
  • try-with-resources文内のローカル変数

など…詳しくはOracleのページで確認する

ローカル変数
public class Main {
    public static void main(String[] args) {
        var num = 100; // ローカル変数なのでvarを使用できる
        System.out.println(num);
    }
}

varが使えないところ

  • フィールド(メンバ変数)
  • メソッドの引数
  • メソッドの戻り値
  • コンストラクタの引数
  • catchブロック
メンバ変数
public class Hero {
    // メンバ変数なのでvarは使用できない
    String name = "akari";
    int hp = 100;
}

まとめ

  • varはローカル変数の初期化時に使用できる
  • 初期化していない場合や、メンバ変数で使用した場合はコンパイルエラー
  • ローカル変数とは、メソッド内に書かれた変数
  • メンバ変数とは、クラス直下(メソッドの外側)に書かれた変数

参考

https://www.javadrive.jp/start/var/index9.html
https://www.fenet.jp/java/column/java_tips/6624/

https://www.javadrive.jp/start/member/index1.html

Discussion