拡張に関する問題です。
1.次のクラス仕様書を元にクラス図を作成しなさい。
なお、以下のいずれのクラスのメソッドにも引数列はない。
スーパークラス Goods
役割:商品を表現する。
フィールド
フィールド名 | アクセス修飾子 | 型 | 役割 |
name | protected | String | 商品名を保持する |
price | protected | int | 価格を保持する |
コンストラクタ
役割:フィールドを初期化する。
メソッド
メソッド名 | アクセス修飾子 | 戻り値の型 | 役割 |
show() | public | void | 商品名と価格を出力する(例.商品名:〇〇 価格:×× ) |
getPrice() | public | int | フィールドpriceを返す |
サブクラス1 Clothes extends Goods
役割:商品の一種である衣服を表現する。
フィールド
フィールド名 | アクセス修飾子 | 型 | 役割 |
color | private | String | 色を保持する(例:白、黒、赤、青) |
size | private | String | サイズを保持する(例:S,M,L,LL) |
コンストラクタ
役割:フィールドを初期化する。
メソッド
メソッド名 | アクセス修飾子 | 戻り値の型 | 役割 |
show() | public | void | 商品名と価格、色とサイズを出力する |
サブクラス2 Computer extends Goods
役割:商品の一種であるコンピューターを表現する。
フィールド
フィールド名 | アクセス修飾子 | 型 | 役割 |
osType | private | String | OSタイプを保持する(例:Windows、Mac、Linux) |
memory | private | int | メモリ容量を保持する(例:256、512) |
コンストラクタ
役割:フィールドを初期化する。
メソッド
メソッド名 | アクセス修飾子 | 戻り値の型 | 役割 |
show() | public | void | 商品名と価格、OSタイプとメモリ容量を出力する |
2.上記問題で作成したクラス図を基にJavaで実装しなさい。
ペアで別クラスを作成し、オブジェクト配列を使ってポリモーフィズムを実感すること。
(すべてのインスタンスのshow()メソッドを使う。また、合計金額も求めること)
※ペア・プログラミング
<メインメソッドの例>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
class Example_13_3 { public static void main(String[] args) { Goods[] g = { new Goods("ハンカチ", 750), new Computer("パソコンA", 100000, "Win2004", 256), new Computer("パソコンB", 150000, "WinYP", 516), new Clothes("Jeans390", 4000, "青", "LL")}; int total = 0; for (int i = 0; i < g.length; i++) { g[i].show(); total += g[i].getPrice(); } System.out.println("----------------------------"); System.out.println("合計金額:" + total + "円"); } } |
<アウトプット例>
————————
商品名:ハンカチ
価格:750
————————
商品名:パソコンA
価格:100000
OSタイプ:Win2004
メモリ:256
————————
商品名:パソコンB
価格:150000
OSタイプ:WinYP
メモリ:516
————————
商品名:Jeans390
価格:4000
色:青
サイズ:LL
—————————-
合計金額:254750円
3.上記問題で作成したクラス図にオリジナルクラスを書き加えなさい。
例:自動車、椅子、スマートフォンなど。
(ホワイトボードにスーパークラスとオリジナルクラスを書く)
4.上記問題で作成したオリジナルクラス図を基にJavaで実装しなさい。
2.と同様の実行をすること。
(ペア・プログラミング)
5.オリジナルクラスを発表いただきます。