Java 写作课我错过了什么?
到目前为止,我有一个项目,以下是我想要的成果: 测试1 及 测试2 以下是说明。“编写一个名为Book的类,其中包含标题、作者和页面的实例数据。定义Book构造函数以接受和初始化此数据。包括所有实例数据的setter和getter方法。包括返回如下字符串的toString方法: 例如: 编写一个BookTester类,从键盘获取作者、标题、页面,创建一个book对象并将上面的内容打印到屏幕上。我如何获得答案以显示图片Test1和Test2中显示的预期输出?还有,我缺少什么 书Java 写作课我错过了什么?,java,Java,到目前为止,我有一个项目,以下是我想要的成果: 测试1 及 测试2 以下是说明。“编写一个名为Book的类,其中包含标题、作者和页面的实例数据。定义Book构造函数以接受和初始化此数据。包括所有实例数据的setter和getter方法。包括返回如下字符串的toString方法: 例如: 编写一个BookTester类,从键盘获取作者、标题、页面,创建一个book对象并将上面的内容打印到屏幕上。我如何获得答案以显示图片Test1和Test2中显示的预期输出?还有,我缺少什么 书 pub
public class Book {
String author;
String title;
int pages;
public Book(String a, String t, int p) {
author = a;
title = t;
pages = p;
}
public String toString() {
String output;
output = ("Author: " + author + "\n");
output = ("Title: " + title + "\n");
output = ("Pages: " + pages + "\n");
return output;
}
}
图书测试员
import java.util.*;
public class BookTester {
public static void main(String[] args) {
String author;
String title;
int pages;
Scanner scan = new Scanner(System.in);
author = scan.nextLine();
title = scan.nextLine();
pages = scan.nextInt();
Book book1 = new Book(author, title, pages);
System.out.println(book1);
}
}
您应该对每个值进行concat(+)。否则将返回最后一个值(表示页面:--
)
您应该对每个值进行concat(+)。否则将返回最后一个值(表示页面:--
)。请尝试以下操作:
public String toString() {
String output = "Author: " + author + "\n" + "Title: " + title + "\n" + "Pages: " + pages + "\n";
return output;
}
您一直在替换返回的输出
字符串,而不是添加到字符串中。尝试以下操作:
public String toString() {
String output = "Author: " + author + "\n" + "Title: " + title + "\n" + "Pages: " + pages + "\n";
return output;
}
您一直在替换返回的
输出
字符串,而不是将其添加到字符串中。程序无法运行,因为您正在使用toString方法重写输出:
public String toString() {
String output;
output = ("Author: " + author + "\n");
output = ("Title: " + title + "\n");
output = ("Pages: " + pages + "\n");
return output;
}
必须做几件事来解决这个问题
@override
public String toString() {
String output;
output += "Author: " + author + "\n";
output += "Title: " + title + "\n";
output += "Pages: " + pages + "\n";
return output;
}
不要忘记@覆盖,这是一个很好的做法
最终建议:
利用IDE的特性生成toString方法总是一个好主意,不要手工编写
例如,我看到您正在使用Eclipse,如果您只需右键单击源代码并选择source>Generate toString此IDE就可以这样做。程序无法运行,因为您正在用toString方法重写输出:
public String toString() {
String output;
output = ("Author: " + author + "\n");
output = ("Title: " + title + "\n");
output = ("Pages: " + pages + "\n");
return output;
}
必须做几件事来解决这个问题
@override
public String toString() {
String output;
output += "Author: " + author + "\n";
output += "Title: " + title + "\n";
output += "Pages: " + pages + "\n";
return output;
}
不要忘记@覆盖,这是一个很好的做法
最终建议:
利用IDE的特性生成toString方法总是一个好主意,不要手工编写
例如,我看到您正在使用Eclipse,如果您只需右键单击源代码并选择source>Generate toString
return String output
无效,则此IDE可以这样做。请更正您的答案。@grzesiekw My bad。不确定这是如何实现的!return String output
无效。请更正您的答案@葛泽西:我的错,不知道那是怎么来的!