welcome: please sign in
location: "オブジェクトを沢山つなぐ"の差分
2と5のリビジョン間の差分 (その間の編集: 3回)
2010-11-18 13:16:18時点のリビジョン2
サイズ: 370
編集者: masahiko
コメント:
2010-11-18 13:33:19時点のリビジョン5
サイズ: 1196
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 3: 行 3:
図のようにするための処理を書きましょう。 オブジェクトを沢山つなぐための方法を考えましょう。
----
=== 例1 ===
2つのオブジェクトを図のようにつなぐための処理を書きました。
行 5: 行 8:
後ろにつながれるほうのインスタンスがbで参照できるときは、
このように書けます。
その方法の1つは、別の変数 b を使って行うものでした。
行 8: 行 10:
  Chain a, b;  Chain a, b;
行 10: 行 12:
  a = new Chain();
  b = new Chain();
  ...
  a.next = b;
  ...
 a = new Chain();
 b = new Chain();
 ...
 a.next = b;
 ...
行 16: 行 18:
この処理を追ってみましょう。

2つのインスタンスが作られた段階ではこのようになっています。
 . {{attachment:chain20.png}}
この後で
 {{{
 a.next = b;
 }}}
を行うと、2つのオブジェクトがつながります。
 . {{attachment:chain21.png}}
このように配置を変えても同じです。
 . {{attachment:chain22.png}}
変数 b が2つめのオブジェクトを指しているのを無視すれば、
変数 a に2のオブジェクトがつながったと見ることができます。
----
=== 例2 ===
では、このような状態のときに
 . {{attachment:chain22.png}}
代入
 {{{
 a.next = b;
 }}}
を行うとどうなるでしょうか。

オブジェクトを沢山つなぐ

オブジェクトを沢山つなぐための方法を考えましょう。


例1

2つのオブジェクトを図のようにつなぐための処理を書きました。

  • chain4.png

その方法の1つは、別の変数 b を使って行うものでした。

  •    1         Chain a, b;
       2 
       3         a = new Chain();
       4         b = new Chain();
       5         ...
       6         a.next = b;
       7         ...
    

この処理を追ってみましょう。

2つのインスタンスが作られた段階ではこのようになっています。

  • chain20.png

この後で

  •         a.next = b;

を行うと、2つのオブジェクトがつながります。

  • chain21.png

このように配置を変えても同じです。

  • chain22.png

変数 b が2つめのオブジェクトを指しているのを無視すれば、 変数 a に2のオブジェクトがつながったと見ることができます。


例2

では、このような状態のときに

  • chain22.png

代入

  •         a.next = b;

を行うとどうなるでしょうか。

オブジェクトを沢山つなぐ (最終更新日時 2010-11-24 00:57:44 更新者 masahiko)