zoukankan      html  css  js  c++  java
  • 类定义

    目录

    要求

    • 设计并实现一个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
    码云直达链接

    源代码

    源代码博客链接

    点此下载源文件压缩包

  • 相关阅读:
    学习Bitmap,处理“海量”数据
    学习Trie树,处理“海量”数据
    学习KMP算法
    学习堆与栈内存分配方式
    学习继承和虚析构函数
    学习处理数组子集和的算法
    学习类中的const和static类型
    学习利用动态规划解决若干问题
    【MySQL】MySQL忘记root密码解决方案
    【API】短信通106端口验证短信的实现
  • 原文地址:https://www.cnblogs.com/Yogile/p/10645035.html
Copyright © 2011-2022 走看看