• 类定义


    目录

    要求

    • 设计并实现一个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:
    "
            +"1. Make a list of books.
    "
            +"2. Determine the accuracy of information in a book.
    "
            +"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
    码云直达链接

    源代码

    源代码博客链接

    点此下载源文件压缩包

  • 相关阅读:
    httpRuntime 元素(ASP.NET 设置架构)
    Change GridView RowColor OnMouseClick
    创建自定义配置结
    设置自定义服务器控件的TagPrefix
    使用DataTable.ReadXml时抛出异常
    正则表达式的字符,定位字符和重复字符
    URL 编码
    tschs.xml 全文索引文件配置说明
    SQL2005 全文索引 contains
    SQL 语句执行时间
  • 原文地址:https://www.cnblogs.com/Yogile/p/10645035.html
Copyright © 2020-2023  润新知