<?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>11</revnumber><date>2012-03-22 01:59:02</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>10</revnumber><date>2012-03-22 01:56:16</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>9</revnumber><date>2011-10-27 05:47:25</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>8</revnumber><date>2010-11-06 04:38:27</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>7</revnumber><date>2009-10-23 04:16:19</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>6</revnumber><date>2009-10-23 02:48:14</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>5</revnumber><date>2009-10-23 02:41:20</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>4</revnumber><date>2009-10-23 02:36:46</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>3</revnumber><date>2009-10-23 02:35:24</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>2</revnumber><date>2009-10-23 02:34:23</date><authorinitials>masahiko</authorinitials></revision><revision><revnumber>1</revnumber><date>2009-10-23 02:33:53</date><authorinitials>masahiko</authorinitials></revision></revhistory></articleinfo><section><title>クラス</title><itemizedlist><listitem override="none"><para>クラスはオブジェクトの<emphasis role="strong">状態</emphasis>と<emphasis role="strong">操作</emphasis>(動作)をサポートする。 </para></listitem><listitem override="none"><para>オブジェクトの状態は<emphasis role="strong">属性</emphasis>の集まりとして表される。 </para></listitem><listitem override="none"><para>オブジェクトの操作(動作)は<emphasis role="strong">メソッド</emphasis>で記述される。 </para></listitem></itemizedlist><section><title>クラス図</title><itemizedlist><listitem override="none"><para>UMLでクラスは３段に分かれた長方形で表す </para></listitem><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%AE%E5%AE%9A%E7%BE%A9?action=AttachFile&amp;do=get&amp;target=classzu1.png"/></imageobject><textobject><phrase>classzu1.png</phrase></textobject></inlinemediaobject> </para></listitem><listitem override="none"><para>１段目はクラス名 </para></listitem><listitem override="none"><para>２段目は属性 </para></listitem><listitem override="none"><para>３段目は操作 </para></listitem></itemizedlist></section><section><title>クラスの定義</title><para>クラスの記述(Javaプログラム)は次の項目で構成される。 ５つの項目があるが、必要なものだけ記述すればよい。 </para><itemizedlist><listitem override="none"><screen><![CDATA[ 修飾子 class クラス名
 {
     static変数の宣言
     属性(変数)の宣言
     コンストラクタの定義
     普通のメソッドの定義
     staticメソッドの定義
 }]]></screen></listitem></itemizedlist></section><section><title>クラス図とJavaプログラムの対応</title><itemizedlist><listitem override="none"><para>属性 </para><itemizedlist><listitem override="none"><para>static変数の宣言 (前回解説) </para></listitem><listitem override="none"><para>属性の宣言 (前回解説) </para></listitem></itemizedlist></listitem><listitem override="none"><para>動作 </para><itemizedlist><listitem override="none"><para>コンストラクタの定義 (<emphasis role="strong">今回解説</emphasis>) </para></listitem><listitem override="none"><para>普通のメソッドの定義 (<emphasis role="strong">今回解説</emphasis>) </para></listitem><listitem override="none"><para>staticメソッドの定義 </para></listitem></itemizedlist></listitem></itemizedlist></section><section><title>例</title><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[class]]></token><![CDATA[ ]]><methodname><![CDATA[Item]]></methodname>
<![CDATA[{]]>
<![CDATA[        ]]><methodname><![CDATA[String]]></methodname><![CDATA[ ]]><methodname><![CDATA[name]]></methodname><![CDATA[;]]>
<![CDATA[        ]]><token><![CDATA[int]]></token><![CDATA[ ]]><methodname><![CDATA[price]]></methodname><![CDATA[;]]>

<![CDATA[        ]]><token><![CDATA[public]]></token><![CDATA[ ]]><token><![CDATA[static]]></token><![CDATA[ ]]><token><![CDATA[void]]></token><![CDATA[ ]]><methodname><![CDATA[main]]></methodname><![CDATA[(]]><methodname><![CDATA[String]]></methodname><![CDATA[[] ]]><methodname><![CDATA[args]]></methodname><![CDATA[)]]>
<![CDATA[        {]]>
<![CDATA[                ...]]>
<![CDATA[        }]]>
<![CDATA[}]]>
</programlisting></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>演習</title><para>次を行いなさい。 </para><para>クラス名は <emphasis role="strong">Item</emphasis> , ファイル名は <emphasis role="strong">Item.java</emphasis> とすること。 </para><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata fileref="http://ei-www.hyogo-dai.ac.jp/~masahiko/moin.cgi/%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%AE%E5%AE%9A%E7%BE%A9?action=AttachFile&amp;do=get&amp;target=item.png"/></imageobject><textobject><phrase>item.png</phrase></textobject></inlinemediaobject> </para></listitem><listitem override="none"><para>変数名(名前,価格)が日本語で書かれているが、アルファベットに直すこと。 </para></listitem><listitem override="none"><para>値(おにぎり,お茶,...)は日本語でも英語でもよい。 </para></listitem><listitem override="none"><para>a,b,c,d はmainメソッド内のローカル変数とする。 </para></listitem><listitem override="none"><para>正しく行われていることを確認するためのprint文を必要に応じて挿入すること。 </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%AF%E3%83%A9%E3%82%B9%E3%81%AE%E5%AE%9A%E7%BE%A9?action=AttachFile&amp;do=get&amp;target=item1.png"/></imageobject><textobject><phrase>item1.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%AF%E3%83%A9%E3%82%B9%E3%81%AE%E5%AE%9A%E7%BE%A9?action=AttachFile&amp;do=get&amp;target=item2.png"/></imageobject><textobject><phrase>item2.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>注意 </para><itemizedlist><listitem override="none"><para>代入文の個数が最小となるようすること。 </para></listitem><listitem override="none"><para>ローカル変数は a,b,c,d の４つしか使わないこと。 </para></listitem></itemizedlist><!--rule (<hr>) is not applicable to DocBook--></section><section><title>変数の内容は？</title><para>変数a,b,cには何が入っているのでしょうか。 </para><para>上のプログラムの表示部分を次のように変えて実行してみました。 </para><itemizedlist><listitem override="none"><programlisting format="linespecific" language="java" linenumbering="numbered" startinglinenumber="1"><![CDATA[                ]]><methodname><![CDATA[System]]></methodname><![CDATA[.]]><methodname><![CDATA[out]]></methodname><![CDATA[.]]><methodname><![CDATA[println]]></methodname><![CDATA[(]]><methodname><![CDATA[a]]></methodname><![CDATA[);]]>
<![CDATA[                ]]><methodname><![CDATA[System]]></methodname><![CDATA[.]]><methodname><![CDATA[out]]></methodname><![CDATA[.]]><methodname><![CDATA[println]]></methodname><![CDATA[(]]><methodname><![CDATA[b]]></methodname><![CDATA[);]]>
<![CDATA[                ]]><methodname><![CDATA[System]]></methodname><![CDATA[.]]><methodname><![CDATA[out]]></methodname><![CDATA[.]]><methodname><![CDATA[println]]></methodname><![CDATA[(]]><methodname><![CDATA[c]]></methodname><![CDATA[);]]>
</programlisting></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%AF%E3%83%A9%E3%82%B9%E3%81%AE%E5%AE%9A%E7%BE%A9?action=AttachFile&amp;do=get&amp;target=kekka2.png"/></imageobject><textobject><phrase>kekka2.png</phrase></textobject></inlinemediaobject> </para></listitem></itemizedlist><para>値は </para><itemizedlist><listitem override="none"><screen><![CDATA[クラス名＠アドレス]]></screen></listitem></itemizedlist><para>の形式で表示されています。 </para></section></section></article>