welcome: please sign in
location: "オブジェクトをつなぐ"の差分
9と10のリビジョン間の差分
2010-11-12 05:17:21時点のリビジョン9
サイズ: 1235
編集者: masahiko
コメント:
2010-11-12 13:21:44時点のリビジョン10
サイズ: 1681
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 43: 行 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();
  ...
 }
 }}}

オブジェクトをつなぐ

たくさんのオブジェクトを扱う方法の1つを学びます。

このような Chainクラスを考えましょう。

  •    1 public class Chain
       2 {
       3         Chain next;
       4 }
    

クラス図は

  • chain1.png

クラスのインスタンスはこのように表せます。

  • chain2.png


例1

  •    1         public static void main(String[] args)
       2         {
       3                 Chain a;
       4 
       5                 a = new Chain();
       6                 System.out.println(a);
       7         }
    

このmainメソッドを実行すると、例えばこのように表示されます。

  • chain5.png

このときの変数やオブジェクトの対応は次のように表せます。

  • chain3.png

chain型(クラス)の変数aは、42e816番地にあるchainクラスのインスタンスを指しています。


練習

変数aの指しているインスタンス内にある変数nextについて考えます。

nextもまたchain型(クラス)の変数ですから、 nextを使って他のインスタンスを指すことができます。

図のようにするための処理を書きましょう。

  • chain4.png

後ろにつながれるほうのインスタンスがbで参照できるときは、 このように書けます。

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

後ろにつながれるインスタンスをその場で作成してよいときは、 このようもに書けます。

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

オブジェクトをつなぐ (最終更新日時 2010-11-17 00:30:20 更新者 masahiko)