20155238 Java第13周课堂实践
类定义
实验内容及要求
设计并实现一个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周课堂实践的更多相关文章
- 《Java程序设计》第12周课堂实践总结
<Java程序设计>第12周课堂实践总结 实践一 教材代码检查-p98 要求 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 提交在IDEA或命令行中运行结查截 ...
- 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)
20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
- 《Java程序设计》第15周课堂实践总结
<Java程序设计>第15周课堂实践总结 实践一 教材代码检查-p242 要求 在IDEA中或命令行中运行P242 StackTraceDemo2.java 代码运行结果和教材一致吗?为什 ...
- Java程序设计 第16周 课堂实践 —— 数据库4
Java程序设计 第16周 课堂实践 -- 数据库4 课堂实践任务4 查询world数据库,查询哪个国家的平均寿命最长. 代码分析 实现查询数据库需要我们修改Message.java,MessageD ...
- Java程序设计 第16周 课堂实践 —— 数据库3
Java程序设计 第16周 课堂实践 -- 数据库3 课堂实践任务3 查询world数据库,获得New Jessey州所有城市的总人口数. 代码分析 实现查询数据库需要我们修改MessageDAO.j ...
- Java程序设计 第16周 课堂实践
Java程序设计 第16周 课堂实践 -- 数据库2 课堂实践任务2 查询world数据库,获得人口超过500万的所有城市的列表. 代码分析 实现查询数据库需要我们修改Message.java,Mes ...
- 20155320 2016-2017-2《Java程序设计》第十二周课堂实践项目
20155320 2016-2017-2<Java程序设计>第十二周课堂实践项目 1.修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 2.在IDEA中以TDD的 ...
- 20155326 第12周课堂实践总结(二)String类和Arrays类的学习
20155326 第12周课堂实践总结(二)String类和Arrays类的学习 实践二 Arrays和String单元测试 实践题目 在IDEA中以TDD的方式对String类和Arrays类进行学 ...
- # 第二周课堂实践以及MyOD
第二周课堂实践以及MyOD 之前使用的虚拟机出现问题被我删掉了,开始学着使用Mac系统自带的终端.在课堂上出现了问题,询问王雄老师也没有解决,课下先使用了实验楼环境进行实验,后来又在Mac重新进行了尝 ...
随机推荐
- python实现分页插件
class Pages: def __init__(self, current_page, data_count, per_page_count=10, pager_num=7):#pager_num ...
- Angular调用父Scope的函数
app.directive('toggle', function(){ return { restrict: 'A', template: '<a ng-click="f()" ...
- OpenCV 图形变换
1.图片缩小 matScale=np.float32([[0.5,0,0],[0,0.5,0]]) dst=cv2.warpAffine(img,matScale,(int(height/2),int ...
- HTML 5 Web Workers
什么是Web Worker? web worker 是运行在后台的 JavaScript,不会影响页面的性能. Web Worker有什么用? JavaScript语言采用的是单线程模型,也就是说,所 ...
- 您还在用下一步下一步的方式安装SQLSERVER和SQLSERVER补丁吗?
您还在用下一步下一步的方式安装SQLSERVER和SQLSERVER补丁吗? 介绍 假如你有50台服务器需要安装SQLSERVER,如果你用下一步下一步的方式,用远程桌面不停切换,那个效率... 大家 ...
- 使用 Azure PowerShell 监视和更新 Windows 虚拟机
Azure 监视使用代理从 Azure VM 收集启动和性能数据,将此数据存储在 Azure 存储中,并使其可供通过门户.Azure PowerShell 模块和 Azure CLI 进行访问. 使用 ...
- NFS网络共享介绍与使用
什么是NFS(网络文件系统)? NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.它的主要功 ...
- 在TortoiseSVN使用clean up
1.在[Cleanup]窗体中勾选中复选框[Clean up working copy status],选中该复选框表示解除锁定. 2.在[Cleanup]窗体中勾选中复选框[revert all c ...
- Spring hibernate 事务的流程
1 在业务方法开始之前 ①获取session ②把session和当前线程绑定,这样就可以在Dao中使用SessionFactory的getCurrentSession()方法来获取session了 ...
- C++中const和指针
常见的理解问题: const char * * s;//表示s是指向const char * 类型的指针: char * * const s;//表示s是指向char * 类型的一个常量指针.