演習問題3(レジ袋)


演習問題3-1 (Composite)

ショッピングカートは食品を入れられるだけで、ショッピングカートの中にショッピングカートを入れるということができませんでしたが、レジ袋は商品を入れられるだけでなく、他のレジ袋も入れることができます。

(この例では、「八百○」のレジ袋に「大根」「レタス」「トマト」と「△肉店」のレジ袋が入っていて、さらに「△肉店」のレジ袋の中に「豚肉」「鶏肉」が入っている)

実行結果のように正しく動作するように、レジ袋である Shopper クラスを作成しなさい。

ただし、将来的には、扱う商品が増える可能性があるが、Shopper クラスは変更しなくてもよいようにする。


実行結果
全商品の合計金額  1,104円
△肉店の合計金額  404円


コード

Enshu301.java
public class Enshu301 { public static void main(String[] args) { Shopper s1 = new Shopper("八百○", 5); // レジ袋5円 s1.add(new Vegetable("大根", 125, 1)); s1.add(new Vegetable("レタス", 147, 2)); Shopper s2 = new Shopper("△肉店", 3); // レジ袋3円 s2.add(new Meat("豚肉", 98, 250)); s2.add(new Meat("鶏肉", 78, 200)); s1.add(s2); s1.add(new Vegetable("トマト", 69, 4)); System.out.println("全商品の合計金額 " + Currency.displayComma(s1.getPrice())); System.out.println(s2.getName() + "の合計金額 " + Currency.displayComma(s2.getPrice())); } }



演習問題3-1 (Composite)