如何用 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 方法
我有 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 方法