== クラス == . クラスはオブジェクトの'''状態'''と'''操作'''(動作)をサポートする。 . オブジェクトの状態は'''属性'''の集まりとして表される。 . オブジェクトの操作(動作)は'''メソッド'''で記述される。 === クラス図 === . UMLでクラスは3段に分かれた長方形で表す . {{attachment:classzu1.png}} . 1段目はクラス名 . 2段目は属性 . 3段目は操作 === クラスの定義 === クラスの記述(Javaプログラム)は次の項目で構成される。 5つの項目があるが、必要なものだけ記述すればよい。 {{{ 修飾子 class クラス名 { static変数の宣言 属性(変数)の宣言 コンストラクタの定義 普通のメソッドの定義 staticメソッドの定義 } }}} === クラス図とJavaプログラムの対応 === . 属性 . static変数の宣言 (前回解説) . 属性の宣言 (前回解説) . 動作 . コンストラクタの定義 ('''今回解説''') . 普通のメソッドの定義 ('''今回解説''') . staticメソッドの定義 === 例 === {{{#!java public class Item { String name; int price; public static void main(String[] args) { ... } } }}} ---- === 演習 === 次を行いなさい。 クラス名は '''Item''' , ファイル名は '''Item.java''' とすること。 . {{attachment:item.png}} . 変数名(名前,価格)が日本語で書かれているが、アルファベットに直すこと。 . 値(おにぎり,お茶,...)は日本語でも英語でもよい。 . a,b,c,d はmainメソッド内のローカル変数とする。 . 正しく行われていることを確認するためのprint文を必要に応じて挿入すること。 (1) 図の状態になるプログラムを書きなさい。 . {{attachment:item1.png}} (2) 実行の途中の時点で(1)の状態になり、そののち次の状態になるプログラムを書きなさい。 . {{attachment:item2.png}} 注意 . 代入文の個数が最小となるようすること。 . ローカル変数は a,b,c,d の4つしか使わないこと。 ---- === 変数の内容は? === 変数a,b,cには何が入っているのでしょうか。 上のプログラムの表示部分を次のように変えて実行してみました。 {{{#!java System.out.println(a); System.out.println(b); System.out.println(c); }}} 実行結果はこうなりました。 . {{attachment:kekka2.png}} 値は {{{ クラス名@アドレス }}} の形式で表示されています。