[英]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.