welcome: please sign in
location: "オブジェクトをつなぐ"の差分
3と13のリビジョン間の差分 (その間の編集: 10回)
2010-11-12 04:32:40時点のリビジョン3
サイズ: 244
編集者: masahiko
コメント:
2010-11-12 13:31:53時点のリビジョン13
サイズ: 1961
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 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 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                 ...
    

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

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

こうしていくつものインスタンスをチェーンのようにつなぐことができます。

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