类定义

目录

要求

  • 设计并实现一个Book类,定义成Book.java,Book 包含书名、作者、出版社和出版日期,这些数据都要定义getter和setter。定义至少三个构造方法,接收并初始化这些数据。覆盖(Override)toString方法,返回良好的含有多行的书的描述信息。覆盖equals方法,书名,作者,出版社和出版日期完全一致才说明两本书是一样的。
  • 创建一个测试类Bookshelf, 其中的main方法创建并更新几个Book对象。Book至少包含三本本学期教材内容。
  • 提交博客,要有设计思路,测试代码和运行结果截图,加上学号水印,要有码云代码链接。
  • 独立完成,抄袭倒扣分。

设计思路

优先完成要求的基础定义

  1. 定义 Book.java 和其中的四个成员变量:bookName、bookWriter、bookPress、bookDate;
    以四个成员变量为基础,定义对应的getter和setter方法;
String bookName, bookWriter, bookPress, bookDate;

public String getBookName() { return bookName; }
public void setBookName(String bookName) { this.bookName = bookName; }
......//省略
  1. 定义三种构造方法,最先构造默认方法;
Book() { bookName = null; ... }     //设为空
Book(String bookName, String bookWriter, String bookPress, String bookDate) { ... }       //使用分别赋值
Book(String bookInfor[]) { ... }       //使用数组赋值
  1. 覆盖 toString 方法,返回良好的含有多行的书的描述信息;
    覆盖 equals 方法,判定书名、作者、出版社和出版日期是否完全一致;
public String toString() { /*return 书名 作者 出版社 出版日期;*/ }

public boolean equals(Object o){
//再判断是不是Book类,提高代码的健壮性;向下转型,父类无法调用子类的成员和方法
//最后判断类的所有属性是否相等;其中String类型和Object类型可以用相应的equals()来判断         
}
  1. 定义 Bookshelf.java 及其 main 方法,载入三本本学期教材内容。
Book bookOld[] = new Book[3];
bookOld[...] = new Book("...",......);

对基础定义进行完善、运用和拓展

  1. 将基础定义的程序进行完善;
  2. 实现添加书籍;实现书籍列表输出;实现验证书籍信息完整性;
Book book[] = new Book[...];
for (...) { book[...]=new Book(); }
//使用覆盖的 toString 方法输出列表
for (...) { System.out.println(book...[...].toString()); }
//使用覆盖的 equals 方法验证完整性
Scanner ((Book)wannaBook).bookName, ......;    //输入要查验的书籍信息
if (book...[...].toString().equals(wannaBook.toString())) { ... }    //比对已存信息和查验信息,返回期望值
  1. 将上述功能与 menu 菜单合并,添加退出选项,开启循环菜单。
Book book[] = new Book[...];

for (...) {    //开启循环
    System.out.println("Input the number of functions to complete:\n"
        +"1. Make a list of books.\n"
        +"2. Determine the accuracy of information in a book.\n"
        +"0. Exit.");
    if (...) {...} else if ( 0 ) { System.exit(0); } else {...}    //实现合并,并添加退出选项
}

测试代码截图

image.png

运行结果截图

解释运行 [图 1 ]

添加书籍:
书名:1 作者:1 出版社:1 出版日期:1
输出列表

image.png

解释运行 [图 2 ]

不添加书籍,验证完整性
image.png

码云链接

https://gitee.com/Yogile/YogileOne.git
码云直达链接

源代码

源代码博客链接

点此下载源文件压缩包

posted @ 2019-04-02 20:20  Yogile  阅读(276)  评论(0编辑  收藏  举报