20175221曾祥杰 类定义

20175221曾祥杰 类定义

题目要求

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

设计思路

  • 按照要求对书的数据分别定义getter和setter
  • 覆盖(Override)toString方法,返回书的描述信息
  • 覆盖equals方法,说明两本书是否一样
  • 创建测试类Bookshelf

核心代码

public class Book {
    private String bookname;
    private String writer;
    private String publishing;
    private String publishingdate;

    //定义getter
    public String getBookname() {//返回书名
        return bookname;
    }
    public String getWriter() {//返回作者
        return writer;
    }
    public String getPublishing() {//返回出版社
        return publishing;
    }
    public String getPublishingdate() {//返回出版日期
        return publishingdate;
    }
    
    //定义setter
    public void setBookname(String bookname) {
        this.bookname = bookname;
    }
    public void setWriter(String writer) {
        this.writer = writer;
    }
    public void setPublishing(String publishing) {
        this.publishing = publishing;
    }
    public void setpublishingdate(String publishingdate) {
        this.publishingdate = publishingdate;
    }

    //注入string属性
    public Book(String bookname, String writer, String publishing, String publishingdate) {
        this.bookname = bookname;
        this.writer = writer;
        this.publishing = publishing;
        this.publishingdate = publishingdate;
    }

    //覆盖toString方法
    public void toString(Book book) {
        System.out.println("bookname:"+book.getBookname());
        System.out.println("writer:"+book.getWriter());
        System.out.println("publishing:"+book.getPublishing());
        System.out.println("publishingdate:"+book.getPublishingdate());
    }

    //覆盖equals方法
    public boolean equals(Object o) {//比较两本书是否一致,一致返回true,反之返回false
        if (this == o)
            return true;
        if (o == null || getClass() != o.getClass())
            return false;
        Book book = (Book) o;
        if (bookname != null ? !bookname.equals(book.bookname) : book.bookname != null)
            return false;
        if (writer != null ? !writer.equals(book.writer) : book.writer != null)
            return false;
        if (publishing != null ? !publishing.equals(book.publishing) : book.publishing != null)
            return false;
        return publishingdate != null ? publishingdate.equals(book.publishingdate) : book.publishingdate == null;
    }
}

运行截图

代码托管(https://gitee.com/zxjacdl/zxj175221/tree/master/ldy)

参考资料:

Object o 与 Object o = null 的区别(https://zhidao.baidu.com/question/124299247.html)

java 中覆盖 equals() 方法 (https://blog.csdn.net/weixiankui1997/article/details/79436392)

java中getClass()方法简介 (https://blog.csdn.net/expect521/article/details/79139829)

原文地址:https://www.cnblogs.com/zxja/p/10667440.html