== オブジェクトをつなぐ == たくさんのオブジェクトを扱う方法の1つを学びます。 このような Chainクラスを考えましょう。 {{{#!java public class Chain { Chain next; } }}} クラス図は . {{attachment:chain1.png}} クラスのインスタンスはこのように表せます。 . {{attachment:chain2.png}} ---- === 例1 === {{{#!java public static void main(String[] args) { Chain a; a = new Chain(); System.out.println(a); } }}} このmainメソッドを実行すると、例えばこのように表示されます。 . {{attachment:chain5.png}} このときの変数やオブジェクトの対応は次のように表せます。 . {{attachment:chain3.png}} chain型(クラス)の変数aは、42e816番地にあるchainクラスのインスタンスを指しています。 ---- === 練習 === 変数aの指しているインスタンス内にある変数nextについて考えます。 nextもまたchain型(クラス)の変数ですから、 nextを使って他のインスタンスを指すことができます。 図のようにするための処理を書きましょう。 . {{attachment:chain4.png}} 後ろにつながれるほうのインスタンスがbで参照できるときは、 このように書けます。 {{{#!java Chain a, b; a = new Chain(); b = new Chain(); ... a.next = b; ... }}} 後ろにつながれるインスタンスをその場で作成してよいときは、 このようもに書けます。 {{{#!java Chain a; a = new Chain(); ... a.next = new Chain(); ... }}} こうしていくつものインスタンスをチェーンのようにつなぐことができます。 ##でも長くつながったときに、 ##a.next.next.next.next.next ##のようにして参照するのではたいへんです。 ##良い方法は次のページで。