
クラスの基本で下記のようにオブジェクトを作成していました。

chara1のようにオブジェクトをさす変数を、Character型の変数と呼びました。さらに、newを使ってオブジェクトを作成し、クラス型の変数に「代入」をしています。
オブジェクトを作成するときでなくとも「代入」することができます。


上記のコードでは、オブジェクトを1つ作成して、Character型の変数chara1に代入しています。次にもうひとつCharacter型のchara2を宣言しました。
「chara2 = chara1;」という代入をしています。つまり、クラス型の変数には
同じクラス型の変数を代入することができます。
chara1とchara2から同じ出力が行われているので「キャラ」オブジェクトが2つ存在しているように見えます。しかし、実際はオブジェクトが2つ存在するわけではありません。


「キャラ」オブジェクトの属性と体力量を変更しました。
chara1とchara2を使い属性と体力量を出力してみると、どちらも同じように変更されているのがわかります。つまり、
変数chara1と変数chara2は異なる2つのオブジェクトではなく、同じ1つのオブジェクトをさしている
のです。このしくみには十分注意しておきましょう。
nullのしくみを知る
変数にnullという値を代入すると、その変数はオブジェクトをさし示さなくなります。
そのオブジェクトがどの変数からも扱われなくなった場合、メモリがオブジェクトを作成する前の状態に戻ります。このことを、ガーベッジコレクションといいます。

ただし、2つの変数が同じオブジェクトをさしていたときは、一方にnullを代入しただけでは、オブジェクトは破棄されないことに注意してください。
メソッドの引数として使う
下記のコードでは、String型の変数をメソッドの引数としています。このため、メソッドにキャラの名前をあらわす文字列を渡すことができるのです。


オブジェクトを配列で扱う
オブジェクトを配列で扱うには、配列を準備することが必要です。
int型の配列を準備する場合と同じですが、
実際のオブジェクトを作成し、配列要素がそのオブジェクトをさすように代入
という作業が必要です。オブジェクトを1つずつ作成して、配列要素に代入します。newが使われるので、忘れないようにしましょう。


クラスの応用方法について学びました。
クラスライブラリを使うと、高度な機能を簡単に実現可能です。クラス型の変数のしくみやオブジェクトを扱う配列は、欠かせない知識です。しっかり理解しておきましょう。