如何用 3 java class 调用另一个 class 的值

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

我有 3 个 java class 名为 Author、Book 和 DisplayBook。作者class 用于设置作者姓名。 Book class 用于获取书籍的详细信息(书名、作者、价格),DisplayBook 用于在控制台 window.

中显示输出(书名、作者、价格)

这是我到目前为止所做的,但它为作者显示了一个随机文本 (Author@2f2c9b19)。这些是我的代码以及相应的设置和获取方法。

作者class

private String firstName;
private String lastName;

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

图书class

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

DisplayBookclass

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 class 的 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 这在你的 class 中不是重写的。 请覆盖 Author class.

中的 toString 方法