2016-04-07 19 views
0

Bookクラスの中の値をCartクラスに印刷するのに問題があります。私はBook book = new Book();がMainクラスではないので、私は仮定していないので、何も置かなかったので、動作しません。試してみますBook.toString();も動作しません。私がしようとしているのは、自分のitemNumとして1を挿入することです。私のブックの値は表示され、2を挿入すると辞書の値が表示されます。しかし、私はこの問題を解決できないようです。 BookからCartクラスへの値をどのように印刷することができますか?Bookクラスの値を別のCartクラスに印刷するにはどうすればよいですか?

ブッククラス:

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; 
    } 
} 

カートクラス:getAuthor()は静的メソッドではありませんので、

public class Cart { 
    private SaleItem[] itemList; 
    private int numItems; 

    public Cart(int numItems){ 
     itemList = new SaleItem[numItems]; 
    } 

    public void addItem(int code, String title, double price, int quantity, int itemNum){ 

     if (itemNum == 1){ 
      System.out.println(Book.getAuthor()); 
     } 
    } 
} 

答えて

0

この行Book.getAuthor()は、コンパイラエラーを取得します。 CartクラスのBook属性は、データを格納する場所にあり、addItem()メソッドで表示する必要があります。例えば

public class Cart{ 
    private Book book; 
    ... 

    public void setBook (Book book){ 
     this.book = book; 
    }  

    public Cart (int numItems){ 
    //Initialize the class attributes 
    book = new Book(); 
    itemList = new SaleItem[numItems]; 
    } 

    public void addItem(int code, String title, double price, int quantity, int itemNum){ 

    if (itemNum == 1){ 
     System.out.println(book.getAuthor()); 
    } 
    } 
} 

使用setBook()addItem()を呼び出す前にブックの値を設定するか、addItem()の内側にそれを置きます。複数のブックを格納する場合は、ブックの配列が必要です。

私はこれがあなたに役立つことを願っています。

+0

ありがとうございました!それは有り難いです。 –

関連する問題