////////////////////////////////////////////////////////////////////////////////
//  << j211.java >>
//
//  クラス(1):オブジェクト
//
// ●オブジェクト
//
//  ・クラスはフィールドやメソッドを定義しているだけなので、データを保存する
//   ためには、記憶領域を確保する必要がある。確保された記憶領域のことをクラス
//   のオブジェクト(または、インスタンス)という。
//   ・ひとつのクラスから複数のオブジェクトを作ることができる。
//
//  ●オブジェクトの作成
//
//  クラスを、Sampleとする。
//
//      Sample obj = new Sample();
//
//   ・予約語newで、クラスSampleのオブジェクトがメモリ上に生成される。
//     Sample型の変数objには生成されたオブジェクトそのものではなく、
//   オブジェクトのメモリ上での位置を示す値(アドレス)が格納される。
//   このような変数objを参照型の変数という。
//
//      Sample obj;
//      obj = new Sample();
//
//  とも書ける。
//
//  (注意)int型やchar型など基本型の変数では、その型をもつ値が格納される。
//
//  ●オブジェクトのフィールド、メソッドへのアクセス
//
//  ・ドット(.)を使って、
//
//       obj.変数名
//       obj.メソッド名(引数)
//
//     と書く。
//
//  ・前者でフィールドへの代入、参照が行われ、後者でメソッドの呼び出しが
//   行われる。
//    ・メソッドから戻り値があれば受け取る。
//    ・引数がない場合、()とする。
//
// ●オブジェクトの代入
//
//    ・オブジェクトを指す変数間で代入を実行すると、右辺の変数が指すアドレスが
//   左辺の変数に代入され、両者は同一のオブジェクトを指すようになる。
//   左辺の変数が指していたオブジェクトは破棄される。
//
//  ・オブジェクトを指す変数にnullを代入すると、その変数はオブジェクトを
//     指さなくなる。指されなくなったオブジェクトは適当なタイミングで破棄され、
//   メモリ領域は再利用される。
//   この仕組みをガーベッジコレクション(garbage collection)という。
//
//  ●オブジェクトの一致
//
//  ・2つの変数が指すオブジェクトが一致するかどうかをメソッド(equals)を使って
//   知ることができる。一致する場合はtrueを返し、一致しない場合はfalseを返す。
//
////////////////////////////////////////////////////////////////////////////////