簡體   English   中英

如何使用 3 個 java 類從另一個類調用值

[英]How to call a value from another class with 3 java classes

我有 3 個名為 Author、Book 和 DisplayBook 的 Java 類。 Author 類用於設置作者姓名。 Book 類用於獲取書籍的詳細信息(書名、作者、價格),DisplayBook 類用於在控制台窗口中顯示輸出(書名、作者、價格)。

這是我到目前為止所做的,但它為作者顯示了一個隨機文本(Author@2f2c9b19)。 這些是我的代碼,分別帶有 set 和 get 方法。

作者類

private String firstName;
private String lastName;

public Author(String fname, String lname) 
{
   firstName = fname;
   lastName = lname;
}

圖書類

private String title;
private Author author;
private double price;

public Book(String bTitle, Author bAuthor, double bPrice) 
{
   title = bTitle;
   author = bAuthor;
   price = bPrice;
}

public void printBook()
{   
   System.out.print("Title: " + title + "\nAuthor: " + author + "\nPrice: " + price);   
}

顯示書類

public static void main(String[] args) {
   Author author = new Author("Jonathan", "Rod");
   Book book = new Book("My First Book", author, 35.60);
   book.printBook();
}

這是輸出

在此處輸入圖片說明

如何讓Jonathan Rod顯示在Author:旁邊?

覆蓋Author類的 toString 方法。 也許像這樣:

public String toString() {
    return this.lastName +", "+ this.firstName;
}

它顯示 Author@2f2c9b19 的原因是因為當您將整個對象傳遞到打印中時,Java 正在顯示該對象的內存地址。

你的印刷書應該是這樣的

public void printBook()
   {   
      System.out.print("Title: " + title + "\nAuthor Name: " + author.firstName + " " + author.lastName + \nPrice: " + 
   price);   
   }

每當您打印任何對象時,它都會調用 toString 方法。 在這里,您沒有獲得理想的輸出,因為它在 Author 上調用 toString ,這在您的類中未被覆蓋。 請覆蓋 Author 類中的 toString 方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM