変数(Variable)

変数はデータを格納するための、名前を付けたメモリ領域のことです。

変数の種類

変数は宣言する場所により、メンバ変数ローカル変数の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;

コメント

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