好的,所以我们必须创建一个书架,并在一个单独的文件上预订具有发布者,作者,版权日期等的对象(基本上为驱动程序类创建一个对象)。我本周已经两次重做这个并且仍然得到同样的错误。也许有人可以指出我正确的方向?也许我错过了一些东西,我不确定。编辑:问题是:对不起我准备工作并超越自己我有三个:首先输出给我:预订@ 15db9742预订@ 6d06d69c然后今年的书类是红色说转换从一个字符串到一个int所以我这样做,它想要回到另一个方向
public class Book {
private String title;
private String author;
private String publisher;
private int copyDate;
public Book(String bookTitle, String authorName, String publisherName, int bookYear){
title = bookTitle;
author = authorName;
publisher = publisherName;
copyDate = bookYear;
}
public Book(){
title = "book titler";
author = "author name";
publisher = "book publisher";
copyDate = "2014";
}
public String getTitle() {
return title;
}
public void setTitle(String bookTitle) {
title=bookTitle;
}
public String getAuthor() {
return author;
}
public void setAuthor(String authorName) {
author = authorName;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisherName) {
publisher = publisherName;
}
public int getCopyDate() {
return copyDate;
}
public void setCopyDate(int copyDate) {
this.copyDate = copyDate;
}
}
这是主要课程:
public class BookShelf {
public static void main(String[] args) {
int bookYear = 2014;
Book name1 = new Book("book\n", "something\n", "something else\n", bookYear);
Book name2 = new Book("anotherBook\n", "anotherSomething\n", "somethingElse^2\n", bookYear);
System.out.println(name1);
System.out.println(name2);
}
}
我输入了任意信息,所以我可以确保它在我搜索好书之前输入lol的信息。
谢谢!
答案 0 :(得分:6)
我认为您需要覆盖toString()
方法,以便System.out.println()
打印您想要的书籍对象信息。
默认情况下,Object的toString()不会打印任何字段,而是打印:
类Object的toString方法返回一个字符串,该字符串由对象为实例的类的名称,符号字符“@”和对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回一个等于值的字符串:
How to use the toString method in Java?
这个方法会进入类中(每个类都有自己的`toString()实现)
class Book{
...
@Override
public String toString(){
//feel free to change this sting to whatever you want
return "Book " + title;
}
}
另外作为Andreas Jabusch的另一个答案,你的构造函数错误地设置了copyDate
。它应该是一个int
copyDate = 2014
删除使其成为字符串的引号。
答案 1 :(得分:0)
你的
copyDate = "2014"
必须是
copyDate = 2014
它是一个int,而不是一个String。