设计并实现类Book,所包含的实例数据表示书名、作者、出版社及版权日期。定义Book构造方法接收和初始化这些数据,并定义接收和设置这些数据的方法。定义toString方法返回多行且格式美观的描述书的字符串。创建驱动类Bookshelf,该类的main方法实例化并更新若干个Book对象。
时间: 2023-06-18 17:05:08 浏览: 48
下面是类Book的实现:
```java
public class Book {
private String title;
private String author;
private String publisher;
private String copyrightDate;
public Book(String title, String author, String publisher, String copyrightDate) {
this.title = title;
this.author = author;
this.publisher = publisher;
this.copyrightDate = copyrightDate;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public String getCopyrightDate() {
return copyrightDate;
}
public void setCopyrightDate(String copyrightDate) {
this.copyrightDate = copyrightDate;
}
@Override
public String toString() {
return "Title: " + title + "\n"
+ "Author: " + author + "\n"
+ "Publisher: " + publisher + "\n"
+ "Copyright Date: " + copyrightDate + "\n";
}
}
```
下面是驱动类Bookshelf的实现:
```java
public class Bookshelf {
public static void main(String[] args) {
// 创建两个Book对象并初始化
Book book1 = new Book("Head First Java", "Kathy Sierra and Bert Bates", "O'Reilly Media", "2003");
Book book2 = new Book("Thinking in Java", "Bruce Eckel", "Prentice Hall", "2006");
// 打印两个Book对象的详细信息
System.out.println(book1);
System.out.println(book2);
// 修改book1的作者和版权日期
book1.setAuthor("Kathy Sierra, Bert Bates");
book1.setCopyrightDate("2005");
// 打印修改后的book1的详细信息
System.out.println(book1);
}
}
```
输出结果:
```
Title: Head First Java
Author: Kathy Sierra and Bert Bates
Publisher: O'Reilly Media
Copyright Date: 2003
Title: Thinking in Java
Author: Bruce Eckel
Publisher: Prentice Hall
Copyright Date: 2006
Title: Head First Java
Author: Kathy Sierra, Bert Bates
Publisher: O'Reilly Media
Copyright Date: 2005
```