サイズ: 244
コメント:
|
サイズ: 1953
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 13: | 行 13: |
クラス図は . {{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 のようにして参照するのではたいへんです。 良い方法は次のページで。 |
オブジェクトをつなぐ
たくさんのオブジェクトを扱う方法の1つを学びます。
このような Chainクラスを考えましょう。
クラス図は
クラスのインスタンスはこのように表せます。
例1
このmainメソッドを実行すると、例えばこのように表示されます。
このときの変数やオブジェクトの対応は次のように表せます。
chain型(クラス)の変数aは、42e816番地にあるchainクラスのインスタンスを指しています。
練習
変数aの指しているインスタンス内にある変数nextについて考えます。
nextもまたchain型(クラス)の変数ですから、 nextを使って他のインスタンスを指すことができます。
図のようにするための処理を書きましょう。
後ろにつながれるほうのインスタンスがbで参照できるときは、 このように書けます。
後ろにつながれるインスタンスをその場で作成してよいときは、 このようもに書けます。
こうしていくつものインスタンスをチェーンのようにつなぐことができます。
でも長くつながったときに、 a.next.next.next.next.next のようにして参照するのではたいへんです。
良い方法は次のページで。