• 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)

  • 相关阅读:
    Python的网络编程[0] -> socket[1] -> socket 模块
    Python的网络编程[0] -> socket[0] -> socket 与 TCP / UDP
    Python的功能模块[4] -> pdb/ipdb -> 实现 Python 的单步调试
    Python的功能模块[3] -> binascii -> 编码转换
    Python的功能模块[2] -> abc -> 利用 abc 建立抽象基类
    Python的功能模块[1] -> struct -> struct 在网络编程中的使用
    Python的功能模块[0] -> wmi -> 获取 Windows 内部信息
    Python的程序结构[8] -> 装饰器/Decorator -> 装饰器浅析
    Python的程序结构[7] -> 生成器/Generator -> 生成器浅析
    Python的程序结构[6] -> 迭代器/Iterator -> 迭代器浅析
  • 原文地址:https://www.cnblogs.com/zxja/p/10667440.html
Copyright © 2020-2023  润新知