| 
  
   サイズ: 721 
  
  コメント:  
 | 
  
   サイズ: 3196 
  
  コメント:  
 | 
| 削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 | 
| 行 26: | 行 26: | 
| === どこも参照していないときの値 === Chainクラスのインスタンスはこのような形をしています。 . {{attachment:chain2.png}} 変数nextがどこも参照していないときは、どんな値をとればよいのでしょうか。 この値は . null と決められており、オブジェクト型の変数が作られたときは、 nullで自動的に初期化されます。 次のようなプログラムを実行して確かめることができます。 {{{#!java public static void main(String[] args) { Chain a; a = new Chain(); System.out.println(a.next); } }}} 実行すると {{{ null }}} と表示されます。 ----  | 
|
| 行 27: | 行 53: | 
showAllという名前のメソッドを作成します。 変数aがChainインスタンスを指しており、 そのインスタンスの変数nextがまた別のChainインスタンスを指しているような場合に {{{ a.showAll(); }}} とすることで、つながっているChainインスタンスをすべて表示するものです。 * Chainインスタンスがつながっている個数は決まっていません。 * 一番後ろのChainインスタンスの変数nextの値はnullになっています。 ---- === showAllメソッド内での処理を考える === いくつものインスタンスを表示するためには、 変数を使ってインスタンスをたどっていく必要があります。 . このために 変数 c を使うことにします。 1. cが先頭のインスタンスを指している場合です。 . {{attachment:chain7.png}} . このインスタンスを表示するには、先に作成した1つのオブジェクトを表示するメソッドshow()を使えばよい。 {{{ c.show(); }}} 2. 2番目のインスタンスの処理。 . まず、変数 c が2番目のインスタンスを指すように修正しなければなりません。 . {{attachment:chain8.png}} . ---- 変数aが次のようなオブジェクトを参照しているときに . a.showAll() が呼ばれた場合の動作を考えます。  | 
|
| 行 28: | 行 88: | 
| メソッドが呼ばれると、呼び出し元の変数の値がthisに渡されます。 . ここではaの値がthisに渡されるのでthisはaが指していたのとおなじオブジェクトを指します。 先に作成した1つのオブジェクトを表示するメソッドshow() . {{attachment:chain9.png}}  | 
つながったオブジェクトを表示する
オブジェクトの操作を行うまえに、表示のためのメソッドを作っておきます。
1つのオブジェクトを表示する
オブジェクトのアドレス(と種類)を表示するには、 オブジェクトを指している変数の値をprintすればよい。
ここで
System.out.println(a);
の代わりに
a.show();
と書けるようにするには、つぎのようなshowメソッドを定義すればよい。
void show() { System.out.println(this); }
どこも参照していないときの値
Chainクラスのインスタンスはこのような形をしています。
変数nextがどこも参照していないときは、どんな値をとればよいのでしょうか。
この値は
- null
 
と決められており、オブジェクト型の変数が作られたときは、 nullで自動的に初期化されます。
次のようなプログラムを実行して確かめることができます。
実行すると
null
と表示されます。
つながったオブジェクトを表示する
showAllという名前のメソッドを作成します。
変数aがChainインスタンスを指しており、 そのインスタンスの変数nextがまた別のChainインスタンスを指しているような場合に
a.showAll();
とすることで、つながっているChainインスタンスをすべて表示するものです。
- Chainインスタンスがつながっている個数は決まっていません。
 - 一番後ろのChainインスタンスの変数nextの値はnullになっています。
 
showAllメソッド内での処理を考える
いくつものインスタンスを表示するためには、 変数を使ってインスタンスをたどっていく必要があります。
- このために 変数 c を使うことにします。
 
1. cが先頭のインスタンスを指している場合です。
 - このインスタンスを表示するには、先に作成した1つのオブジェクトを表示するメソッドshow()を使えばよい。 
c.show();
 
2. 2番目のインスタンスの処理。
- まず、変数 c が2番目のインスタンスを指すように修正しなければなりません。
 
 
変数aが次のようなオブジェクトを参照しているときに
- a.showAll()
 
が呼ばれた場合の動作を考えます。
メソッドが呼ばれると、呼び出し元の変数の値がthisに渡されます。
- ここではaの値がthisに渡されるのでthisはaが指していたのとおなじオブジェクトを指します。
 
先に作成した1つのオブジェクトを表示するメソッドshow()
