类定义

实验内容及要求

  • 设计并实现一个Book类,定义义成Book.java,Book 包含书名,作者,出版社和出版日期,这些数据都要定义getter和setter。定义至少三个构造方法,接收并初始化这些数据。覆盖(Override)toString方法,返回良好的含有多行的书的描述信息。覆盖equals方法,书名,作者,出版社和出版日期完全一致才说明两本书是一样的。

  • 创建一个测试类Bookshelf, 其中的main方法创建并更新几个Book对象。Book至少包含三本本学期教材内容。

实验过程

  • 产品代码
public class Book {
private String bookname;
private String author;
private String publishing;
private String price; public String getAuthor() {
return author;
} public void setAuthor(String author) {
this.author = author;
} public String getPublishing() {
return publishing;
} public void setPublishing(String publishing) {
this.publishing = publishing;
} public String getPrice() {
return price;
} public void setprice(String price) {
this.price = price;
} public String getBookname() { return bookname;
} public void setBookname(String bookname) {
this.bookname = bookname;
} public Book(String bookname, String author, String publishing, String price) {
this.bookname = bookname;
this.author = author;
this.publishing = publishing;
this.price = price;
} @Override
public String toString() {
return "Book{" +
"bookname='" + bookname + '\'' +
", author='" + author + '\'' +
", publishing='" + publishing + '\'' +
", price='" + price + '\'' +
'}';
} @Override
public boolean equals(Object o) {
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 (author != null ? !author.equals(book.author) : book.author != null) return false;
if (publishing != null ? !publishing.equals(book.publishing) : book.publishing != null) return false;
return price != null ? price.equals(book.price) : book.price == null;
} @Override
public int hashCode() {
int result = bookname != null ? bookname.hashCode() : 0;
result = 31 * result + (author != null ? author.hashCode() : 0);
result = 31 * result + (publishing != null ? publishing.hashCode() : 0);
result = 31 * result + (price != null ? price.hashCode() : 0);
return result;
}
  • 测试代码
public class Bookshelf {
public static void main(String[] args){
Book b = new Book("Java","林信良","清华大学出版社","68");
Book b1 = new Book("Java学习笔记","林信良","清华大学出版社","68");
System.out.println(b.getBookname());
System.out.println(b.equals(b1));
b.setPublishing("java学习笔记");
System.out.println(b.equals(b1));
System.out.println(b.getBookname());
System.out.println(b.getAuthor());
System.out.println(b.getAuthor());
System.out.println(b.getPublishing());
System.out.println(b.getPrice());
}
}
  • 实验截图

实验总结

  • 今后应多加练习,争取更加熟练的掌握,在课上能及时提交。

20155238 Java第13周课堂实践的更多相关文章

  1. 《Java程序设计》第12周课堂实践总结

    <Java程序设计>第12周课堂实践总结 实践一 教材代码检查-p98 要求 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 提交在IDEA或命令行中运行结查截 ...

  2. 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)

    20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  3. 《Java程序设计》第15周课堂实践总结

    <Java程序设计>第15周课堂实践总结 实践一 教材代码检查-p242 要求 在IDEA中或命令行中运行P242 StackTraceDemo2.java 代码运行结果和教材一致吗?为什 ...

  4. Java程序设计 第16周 课堂实践 —— 数据库4

    Java程序设计 第16周 课堂实践 -- 数据库4 课堂实践任务4 查询world数据库,查询哪个国家的平均寿命最长. 代码分析 实现查询数据库需要我们修改Message.java,MessageD ...

  5. Java程序设计 第16周 课堂实践 —— 数据库3

    Java程序设计 第16周 课堂实践 -- 数据库3 课堂实践任务3 查询world数据库,获得New Jessey州所有城市的总人口数. 代码分析 实现查询数据库需要我们修改MessageDAO.j ...

  6. Java程序设计 第16周 课堂实践

    Java程序设计 第16周 课堂实践 -- 数据库2 课堂实践任务2 查询world数据库,获得人口超过500万的所有城市的列表. 代码分析 实现查询数据库需要我们修改Message.java,Mes ...

  7. 20155320 2016-2017-2《Java程序设计》第十二周课堂实践项目

    20155320 2016-2017-2<Java程序设计>第十二周课堂实践项目 1.修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 2.在IDEA中以TDD的 ...

  8. 20155326 第12周课堂实践总结(二)String类和Arrays类的学习

    20155326 第12周课堂实践总结(二)String类和Arrays类的学习 实践二 Arrays和String单元测试 实践题目 在IDEA中以TDD的方式对String类和Arrays类进行学 ...

  9. # 第二周课堂实践以及MyOD

    第二周课堂实践以及MyOD 之前使用的虚拟机出现问题被我删掉了,开始学着使用Mac系统自带的终端.在课堂上出现了问题,询问王雄老师也没有解决,课下先使用了实验楼环境进行实验,后来又在Mac重新进行了尝 ...

随机推荐

  1. 常用的第三方模块 requests url

    我们已经讲解了Python内置的urllib模块,用于访问网络资源.但是,它用起来比较麻烦,而且,缺少很多实用的高级功能. 更好的方案是使用requests.它是一个Python第三方库,处理URL资 ...

  2. 【Redis】Redis学习(四) Redis Sentinel模式详解

    主从模式的弊端就是不具备高可用性,当master挂掉以后,Redis将不能再对外提供写入操作,因此sentinel应运而生. Redis Sentinel是Redis官方提供的集群管理工具,主要有三大 ...

  3. Vue组件学习

    根据Vue官方文档学习的笔记 在学习vue时,组件学习比较吃力,尤其是组件间的通信,所以总结一下,官方文档的组件部分. 注册组件 全局组件 语法如下,组件模板需要使用一个根标签包裹起来.data必须是 ...

  4. 无法获取链接服务器 "XXX" 的 OLE DB 访问接口 "SQLNCLI10" 的架构行集 "DBSCHEMA_TABLES_INFO"。该访问接口支持该接口,但使用该接口时返回了失败代码。

    1. SQL 2000 下载补丁 SQL2KSP4 ,进行安装 2.找到SQL2KSP4\install\instcat.sql 并在sql2000 中打开查询分析器中执行

  5. cisco查看机框 板卡 电源 SN 风扇环境运行状态和一些常用命令 巡检命令

    查看设备运行环境及状态 show environment 查看设备环境show environment temperature --查设备温度 show environment fans --查看设备 ...

  6. VS2015 调试 条件和操作设置

    vs 开发过程中,经常会遇到这样的场景: 例如有几千条数据,调试代码的时候需要在循环中走到name="A"的这条数据, 并且单步调试这条数据走完整个逻辑过程.这个时候调试的条件设置 ...

  7. 【Linq】常用语法汇总

    语言继承查询(Language Integrated Query, LINQ),在C#编程语言中集成了查询语法,可以用相同的语法访问不同的数据源,LINQ提供了不同数据源的抽象层,所以可以使用相同语法 ...

  8. idea 断点上面有x

    背景:确定你的java代码没有问题,并且编译通过 问题:debug 启动项目的时候没有问题,idea打断点的时候左边红色断点上面有x 原因:java文件和class文件不一致, 解决方法:ant cl ...

  9. 不使用 vue-cli 与 vue 模版,使用 Vue2.x + webpack4.x 从零开始一步步搭建项目框架

    说明 这是我根据慕课网上的一个课程 Vue+Webpack打造todo应用 过程一步步搭下来的框架,去掉了业务相关的逻辑. 项目最终的效果包括了引入vue框架:使用CSS预处理器:使用babel:引用 ...

  10. SDN 第三次上机作业

    SDN 第三次上机作业 1.创建拓扑 2.利用OVS命令下发流表,实现vlan功能 3.利用OVS命令查看流表 s1: s2: 4.验证性测试 5.Wireshark 抓包验证