変数はデータを格納するための、名前を付けたメモリ領域のことです。
変数の種類
変数は宣言する場所により、メンバ変数とローカル変数の2種類があります。
種類 | メモ |
---|---|
メンバ変数 (フィールド変数) | クラスのフィールドエリアに定義した変数のことです。 フィールド変数とも呼びます。 クラス内の各メソッドからもクラス外からもアクセスできます。 公開範囲はアクセス修飾子で絞ることも可能です。 |
ローカル変数 | メソッド内に定義した変数のことです。 定義したメソッド外からはアクセスできません。 アクセス修飾子を指定することもできません。 |
変数宣言の構文
[修飾子] <型> <変数名> [= <初期値>];
メンバ変数の修飾子には、アクセス修飾子、static修飾子、final修飾子が指定できます。
ローカル変数の修飾子には、final修飾子のみ指定できます。
final修飾子を指定すると定数となり、初期値の指定は必須です。
ローカル変数型推論(Local Variable Type Inference)
Java SE10で「ローカル変数型推論」という仕組みが導入されました。
ローカル変数型推論は varキーワードを使用することで、明示的にデータ型を指定しなくとも自動で型判定してくれる仕組みです。
- (ローカル変数型推論の例)
-
// 通常の変数宣言 int a = 123; // ローカル変数型推論を使用した変数宣言 var a = 123; //変数aは自動でint型になる
ローカル変数型推論は以下の箇所で使用できます。
※メンバ変数、メソッドの引数や戻り値、 catch句などでは使用できません。
- ローカル変数の宣言
- 拡張for文の中
varを配列定義に使用する場合は、型の指定は必須です。
- (配列宣言でローカル変数型推論を使用する例)
-
var arr = {1,2,3}; //これはNG var arr = new int[]{1,2,3}; //これならOK
変数の命名ルール
変数名には以下の命名規則があります。
命名規則に沿っていない変数名を付けるとコンパイルエラーが発生します。
- 使用できる文字は A~Z、a~z、0~9、_(アンダーバー)、$ のみ。
- アルファベットの大文字と小文字は区別される。
- 先頭文字には数字の 0 から 9 は使用できない
- Java のキーワード(予約語)は使えない。
- 長さの制限はない。
また、変数名はキャメルケース形式で定義することが推奨されます。
※ キャメルケース形式は複数の単語を連結する際、最初の単語はすべて小文字、後に続く単語は先頭文字のみ大文字で書く命名方式です。
例)postCode、result、bankBranchCd
変数の定義サンプル
変数の定義例です。
- (メンバ変数)
-
// 自クラス内からのみアクセスできるString型変数で初期値なし(= null) private String name; // どこからでもアクセスできるint型変数で初期値100 public int count = 100; // どこからでもアクセスできるdouble型定数で初期値123.45 public final double NUM = 123.45; // String型のstatic変数で初期値は"Apple" public static String name = "Apple";
- (ローカル変数)
-
// long型変数で初期値100 long count = 100; // String型変数で初期値なし(= null) String name; // double型定数で初期値123.45 final double NUM = 123.45;
コメント