2016-11-11 5 views
-4

以下の仕様でShoppingCartクラスを構築します。注:最初にメソッドスタブ(空のメソッド)を作成し、後の手順で完了させることもできます。ArrayListに宣言してaddItemを追加する方法

  • プライベートフィールド
  • 文字列CUSTOMERNAME - に "2016年1月1日"
  • ArrayListのcartItems
  • デフォルトのコンストラクタ
  • ddefaultコンストラクタで初期化 - "なし"
  • 文字列CURRENTDATEにddefaultコンストラクタで初期化
  • 顧客名と日付をパラメータとするパラメータ化されたコンストラクタ(1pt)

  • パブリックメンバメソッド

    • getCustomerName()アクセサ(1 PT)
    • のgetDate()アクセサ(1 PT)
    • のaddItem()
    • cartItems配列に項目を追加します。パラメータItemToPurchaseを持ちます。何も返さない。 ...

OKだから私は、ArrayListのcartItems周り失われてしまいました。 Stringまたはintと宣言する必要があるかどうかはわかりません。また、それが正しかったと宣言したかどうかや、それを行う方法についてもわからない。私もItemToPurchaseというクラスを作成しました。これはメインメソッドを持つShoppingCartManagerというクラスを作成する必要があります。ここで私がこれまで持っているものだ(私はShoppingCartクラスのうちのいくつかを取った。)

をItemToPurchase.java

public class ItemToPurchase { 

    private String itemName; 

    private String itemDescription; 

    private int itemPrice; 

    private int itemQuantity; 

    public ItemToPurchase() { 
     itemName = "none"; 
     itemPrice = 0; 
     itemQuantity = 0; 
     itemDescription = "none"; 

    } 

    public void setDescription(String description) { 
     itemDescription = description; 
    } 

    public String getDescription() { 
     return itemDescription; 
    } 

    public String printItemCost() { 
     String str = getName() + " " + getQuantity() + " " + getPrice() + " " + (getQuantity() * getPrice()); 
     return str; 
    } 

    public String printItemDescription() { 
     String k = getName() + " " + getDescription(); 
     return k; 
    } 

    public void setName(String name) { 
     itemName = name; 
    } 

    public String getName() { 
     return itemName; 

    } 

    public void setPrice(int price) { 
     itemPrice = price; 
    } 

    public int getPrice() { 
     return itemPrice; 
    } 

    public void setQuantity(int quantity) { 
     itemQuantity = quantity; 
    } 

    public int getQuantity() { 
     return itemQuantity; 
    } 

} 

ShoppingCart.javaは

import java.util.ArrayList; 

public class ShoppingCart { 

    Scanner sc = new Scanner(System.in); 
    private String customerName; 
    private String currentDate; 
    private ArrayList<String> cartItems = new ArrayList<String>(); 


    public ShoppingCart(String customerName, String currentDate) { 
     customerName = "none"; 
     currentDate = "January 1, 2016"; 
    } 

    public void getCustomerName() { 

    } 

    public void getDate() { 

    } 

    public void addItem(String itemName) { 
     cartItems.add(itemName); 
    } 
} 

答えて

0

それは私には思われますArrayListintまたはStringを保持する必要はありませんが、ItemToPurchaseインスタンスを保持する必要はありません。これはArrayList宣言をprivate ArrayList<ItemToPurchase> cartItems = new ArrayList<ItemToPurchase>();に変更することを意味します。ItemToPurchaseオブジェクトをArrayListに追加することができます。これはあなたがしようとしているものだと思います。次に、クラスのaddItemメソッドをStringオブジェクトの代わりにItemToPurchaseオブジェクトを受け入れるように変更します。

public void addItem(ItemToPurchase item) { 
    cartItems.add(item); 
} 
関連する問題