サイズ: 782
コメント:
|
サイズ: 1953
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 18: | 行 18: |
=== 例1 === | |
行 28: | 行 29: |
. {{attachment:chain5.png}} | |
行 31: | 行 33: |
chain型(クラス)の変数aは、42e816番地にあるchainクラスのインスタンスを指しています。 | |
行 32: | 行 35: |
実行結果は | === 練習 === 変数aの指しているインスタンス内にある変数nextについて考えます。 |
行 34: | 行 38: |
nextもまたchain型(クラス)の変数ですから、 nextを使って他のインスタンスを指すことができます。 図のようにするための処理を書きましょう。 |
|
行 35: | 行 43: |
後ろにつながれるほうのインスタンスが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 のようにして参照するのではたいへんです。
良い方法は次のページで。