<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>オブジェクトを沢山つなぐ</title><revhistory><revision><revnumber>9</revnumber><date>2010-11-24 00:57:44</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2010-11-18 13:39:45</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2010-11-18 13:37:35</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2010-11-18 13:33:42</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2010-11-18 13:33:19</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2010-11-18 13:29:01</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2010-11-18 13:20:23</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2010-11-18 13:16:18</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2010-11-18 13:15:26</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>オブジェクトを沢山つなぐ</title><para>オブジェクトを沢山つなぐための方法を考えましょう。 </para><!--rule (<hr>) is not applicable to DocBook--><section><title>例１</title><para>２つのオブジェクトを図のようにつなぐための処理を書きました。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E6%B2%A2%E5%B1%B1%E3%81%A4%E3%81%AA%E3%81%90?action=AttachFile&amp;do=get&amp;target=chain4.png"/></imageobject><textobject><phrase>chain4.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>その方法の１つは、別の変数 b を使って行うものでした。 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><![CDATA[        ]]><methodname><![CDATA[Chain]]></methodname><![CDATA[ ]]><methodname><![CDATA[a]]></methodname><![CDATA[, ]]><methodname><![CDATA[b]]></methodname><![CDATA[;]]>

<![CDATA[        ]]><methodname><![CDATA[a]]></methodname><![CDATA[ = ]]><token><![CDATA[new]]></token><![CDATA[ ]]><methodname><![CDATA[Chain]]></methodname><![CDATA[();]]>
<![CDATA[        ]]><methodname><![CDATA[b]]></methodname><![CDATA[ = ]]><token><![CDATA[new]]></token><![CDATA[ ]]><methodname><![CDATA[Chain]]></methodname><![CDATA[();]]>
<![CDATA[        ...]]>
<![CDATA[        ]]><methodname><![CDATA[a]]></methodname><![CDATA[.]]><methodname><![CDATA[next]]></methodname><![CDATA[ = ]]><methodname><![CDATA[b]]></methodname><![CDATA[;]]>
<![CDATA[        ...]]>
</programlisting></listitem></itemizedlist><para>この処理を追ってみましょう。 </para><para>２つのインスタンスが作られた段階ではこのようになっています。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E6%B2%A2%E5%B1%B1%E3%81%A4%E3%81%AA%E3%81%90?action=AttachFile&amp;do=get&amp;target=chain20.png"/></imageobject><textobject><phrase>chain20.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>この後で </para><itemizedlist><listitem override="none"><screen><![CDATA[        a.next = b;]]></screen></listitem></itemizedlist><para>を行うと、２つのオブジェクトがつながります。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E6%B2%A2%E5%B1%B1%E3%81%A4%E3%81%AA%E3%81%90?action=AttachFile&amp;do=get&amp;target=chain21.png"/></imageobject><textobject><phrase>chain21.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>このように配置を変えても同じです。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E6%B2%A2%E5%B1%B1%E3%81%A4%E3%81%AA%E3%81%90?action=AttachFile&amp;do=get&amp;target=chain22.png"/></imageobject><textobject><phrase>chain22.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>変数 b が２つめのオブジェクトを指しているのを無視すれば、 変数 a に２のオブジェクトがつながったと見ることができます。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>例２</title><para>では、このような状態のときに </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E6%B2%A2%E5%B1%B1%E3%81%A4%E3%81%AA%E3%81%90?action=AttachFile&amp;do=get&amp;target=chain23.png"/></imageobject><textobject><phrase>chain23.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>代入 </para><itemizedlist><listitem override="none"><screen><![CDATA[        a.next = b;]]></screen></listitem></itemizedlist><para>を行うとどうなるでしょうか。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E6%B2%A2%E5%B1%B1%E3%81%A4%E3%81%AA%E3%81%90?action=AttachFile&amp;do=get&amp;target=chain24.png"/></imageobject><textobject><phrase>chain24.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>のようにつながり、 変数 a の先に３のオブジェクトがつながりました。 </para><!--rule (<hr>) is not applicable to DocBook--></section><section><title>例３</title><para>例２で 変数 b の先に沢山のオブジェクトがつながっているときでも、 同じ処理ができます。 </para></section></section></article>