////////////////////////////////////////////////////////////////////////////////
// << j221.java >>
//
// クラス(2):変数(インスタンス変数、クラス変数、ローカル変数)
//
// フィールドで定義される変数として、インスタンス変数、クラス変数がある。
// メソッド内で定義される変数として、ローカル変数がある。
//
// ●インスタンス変数
//
// ・フィールド内で定義された変数をインスタンス変数という。
// ・インスタンス変数は、オブジェクトが作成されたときに初めて存在し、
// オブジェクトごとに異なるものとして扱われる。
// すなわち、同じクラスから作成されたオブジェクトが複数存在するとき、
// 他のオブジェクトでの値の更新の影響は受けない。
//
// ○インスタンス変数の宣言
//
// 型名 変数名
//
// ●クラス変数
//
// ・フィールド内で、予約語staticをつけて定義された変数をクラス変数(static変数
// ともいう)という。
// ・そのクラスから作成されたオブジェクトで共有される。
// すなわち、同じクラスから作成されたオブジェクトが複数存在するとき、
// 他のオブジェクトでの値の更新の影響を受ける。
// ・クラス変数は、そのクラスから生成されたオブジェクトがひとつもないときでも
// 存在する。
//
// ○クラス変数の宣言
//
// static 型名 変数名
//
// オブジェクトが存在しないとき、クラス変数への参照は、
//
// クラス名.変数名
//
// で行う。
//
// ●ローカル変数
//
// ・インスタンス変数、クラス変数に対して、メソッド内で宣言した変数を
// ローカル変数という。
// ・ローカル変数は宣言したメソッド内のみで使え、メソッドが終了すると領域は
// 解放される。すなわち、メソッドが呼び出されるたびに初期化される。
//
// ●例
//
// class クラス名 {
// int a = 123; // インスタンス変数。
// static String s = "abc"; // クラス変数。
// public static void main(String args[]) {
// int b = 0; // ローカル変数。
// ・・・
// }
// }
//
////////////////////////////////////////////////////////////////////////////////