私のカートのクラスでは、新しい項目を配列に追加するのが難しいです。私はSaleItem item = new SaleItemを試していますが、私のSaleItemは要約を保持するはずの要約であるため、私にエラーが発生します。カートクラスの部品のいくつかは間違っています。私は自分が何をしているのか知りたかったのです。助言がありますか?またはヘルプ?カートクラス新しいアイテムを追加する方法?
これは指示です: **カート構築者メソッドは、カートに入れることができるアイテムの最大数を決定する整数パラメータを入力として受け取ります。 addItemは、最初の4つの入力が追加される項目のコード、タイトル、価格および数量を表す5つの入力パラメータを取ります。 5番目の入力パラメータは、アイテムのタイプを示します(1ブック、2ディクショナリ、3オーディオCD)。追加される項目のタイプに応じて、このメソッドはユーザーに残りのインスタンス変数の値を問い合わせます。メソッドは、対応するオブジェクトをインスタンス化し、配列に追加します。 cartTotalCost:カート内のすべての商品の合計費用を返すメソッドです。 getNumBooks:カート内の書籍の数を返すメソッド。 getNumCDS:カート内のオーディオCDの数を返すメソッドです。 toString:各項目が1行で印刷される、きれいにフォーマットされたカートの出力を印刷するメソッドです。
SaleItemクラス:
public abstract class SaleItem {
private int code;
private String title;
private double price;
private int quantity;
public SaleItem(int code, String title, double price, int quantity){
this.code = code;
this.title = title;
this.price = price;
this.quantity = quantity;
}
//Getters
public int getCode(){
return this.code;
}
public String getTitle(){
return this.title;
}
public double getPrice(){
return this.price;
}
public int getQuantity(){
return this.quantity;
}
// Setters
public void setCode(int code){
this.code = code;
}
public void setTitle(String title){
this.title = title;
}
public void setPrice(double price){
this.price = price;
}
public void setQuantity(int quantity){
this.quantity = quantity;
}
//ItemTotalCost method
public double itemTotalCost(){
double total = this.price * this.quantity;
return total;
}
//ToString
public String toString(){
String outputItemDes = "";
outputItemDes += "Code: "+ this.code;
outputItemDes += "Title: "+ this.title;
outputItemDes += "Price: "+ this.price;
outputItemDes += "Quantity: "+ this.quantity;
outputItemDes += "Item Total Cost: " + this.itemTotalCost();
return outputItemDes;
}
}
ブッククラス:
public class Book{
private String author;
private int numPages;
public Book(int code, String title, double price, int quantity, String author, int numPages){
this.author = author;
this.numPages = numPages;
}
//Getters
public String getAuthor(){
return this.author;
}
public int getNumPages(){
return this.numPages;
}
//Setters
public void setAuthor(String author){
this.author = author;
}
public void setNumPages(int numPages){
this.numPages = numPages;
}
//toString
@Override
public String toString(){
String outputBookDes = "";
outputBookDes += "Author: "+ this.author;
outputBookDes += "Number Pages: "+ this.numPages;
return outputBookDes;
}
}
AudioCDのクラス:
public class AudioCD extends SaleItem {
private String artist;
private String label;
private int playingTime;
public AudioCD(int code, String title, double price, int quantity, String artist, String label, int playingTime){
super(code,title,price,quantity);
this.artist = artist;
this.label = label;
this.playingTime = playingTime;
}
//Getters
public String getArtist(){
return this.artist;
}
public String getLabel(){
return this.label;
}
public int getPlayingTime(){
return this.playingTime;
}
//Setters
public void setArtist(String artist){
this.artist = artist;
}
public void setLabel(String label){
this.label = label;
}
public void setPlayingTime(int playingTime){
this.playingTime = playingTime;
}
//toSting method as in the Book class
@Override
public String toString(){
String outputAudioDes = "";
outputAudioDes += "Artist: "+ this.artist;
outputAudioDes += "Label: "+ this.label;
outputAudioDes += "Playing Time: "+ this.playingTime;
return outputAudioDes;
}
}
カートクラス:
public class Cart {
// Variables
private SaleItem[] itemList;
private int numItems;
private Book book;
private Dictionary dictionary;
private AudioCD audioCD;
//Constructors
public Cart(int maxItems){
this.numItems = 0;
this.itemList = new SaleItem[maxItems];
}
//Setters
public void setBook(Book book){
this.book = book;
}
public void setDictionary(Dictionary dictionary){
this.dictionary = dictionary;
}
public void setAudioCD(AudioCD audioCD){
this.audioCD = audioCD;
}
//Add Item method goes into the cart
public void addItem(int code, String title, double price, int quantity, int itemNum){
int maxItems = this.itemList.length;
if (itemNum == 1){
System.out.println(book);
}
else if (itemNum == 2){
System.out.println(dictionary);
}
else if (itemNum == 3){
System.out.println(audioCD);
}
if (this.numItems < maxItems){
SaleItem item = new SaleItem(code,title,price,quantity,itemNum);
itemList[this.numItems] = item;
this.numItems++;
}
}
// Sums up all of the item in the cart
public double cartTotalCost(){
double cartTotal = 0;
for (int i = 0; i < itemList.length; i++){
SaleItem item = itemList[i];
double subTotal = (item.getPrice() * item.getQuantity());
cartTotal += subTotal;
}
return cartTotal;
}
//Getters
public Book getNumBooks(){
return book;
}
public AudioCD getNumCDS(){
return audioCD;
}
public String toString(){
String cartDes = "";
for (int i = 0; i < itemList.length; i++){
cartDes += itemList[i];
}
return cartDes;
}
}
コードの関連部分のみを投稿してください。 – Maroun