类定义(课下选做)

1、设计思路

1.根据题目要求覆盖(Override)toString方法、覆盖equals方法,即重写这两个方法;
2.根据题目要求定义至少三个构造方法,接收并初始化这些数据;
3.创建一个测试类Bookshelf, 其中的main方法创建并更新几个Book对象,并对产生的对象进行测试。

2、设计代码

Book.java

public class Book {String name;String writter;String publish;String date;Book(){    //定义第一个构造方法将所有元素初始化name=null;writter=null;publish=null;date=null;}Book(String name,String writter,String publish,String date){    //定义第二种构造方法给所有元素赋值this.name=name;this.writter=writter;this.publish=publish;this.date=date;}Book(String book[]){    //定义第三种构造方法用数组给元素赋值this.name=book[0];this.writter=book[1];this.publish=book[2];this.date=book[3];}public void setName(String name){this.name=name;}public String getName(){return name;}public void setWritter(String writter){this.writter=writter;}public String getWritter(){return writter;}public void setPublish(String publish){this.publish=publish;}public String getPublish(){return publish;}public void setDate(String date){this.date=date;}public String getDate(){return date;}public String toString(){    //重写toString()方法return "书名:"+name+",作者:"+writter+",出版社:"+publish+",出版日期:"+date;}public boolean equals(Object x){   //重写equals()方法if(this==x)      //判断地址是否相等return true;if(x==null)      //判断对象是否为空return false;if (getClass()!=x.getClass())     //判断对象类型是否相等return false;Book book = (Book)x;     //上转型对象,判断子类成员变量是否相等if(book.name==this.name&&book.writter==this.writter&&book.publish==this.publish&&book.date==this.date)return true;elsereturn false;}
}

BookShelf.java

import java.util.*;
public class BookShelf {public static void main(String[] args){Book b0=new Book("Java","耿祥义","清华大学出版社","2017");Book b1=new Book("汇编语言与程序设计","钱晓捷","电子工业出版社","2018");Book b2=new Book("密码学","郑秀林","金城出版社","2016");Scanner reader=new Scanner(System.in);String s=null;System.out.println("进入书柜,请输入书名:");s=reader.nextLine();if(s.equals("Java")){System.out.println(b0);System.out.println(b0.equals(b0));}else if(s.equals("汇编语言与程序设计")){System.out.println(b1);System.out.println(b1.equals(b1));}else if(s.equals("密码学")){System.out.println(b2);System.out.println(b2.equals(b2));}else{System.out.println("书柜中无此书籍!");System.out.println(b0.equals(b2));}}
}

3、运行截图

1591637-20190406191728674-1293096266.png

4、码云链接

https://gitee.com/zzm-zcc/zhang_zhi_min/tree/master/%E7%B1%BB%E5%AE%9A%E4%B9%89

5、设计总结

根据题目得要求设计程序,重写的两个方法相对比较重要,构造的三个构造方法有两个没有用到。

转载于:https://www.cnblogs.com/zzmzcc/p/10662523.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我们不用「元宇宙」这个词!苹果CEO库克:我们称其为AR

来源:Time&新智元近日,在登上时代周刊的百大人物之后,苹果CEO库克再次接受了杂志的采访。虽然内容千篇一律,但是最有趣的莫过于拒绝「元宇宙」这个说法了。「这就是所谓的元宇宙吗?」Time的记者问道。「不&#xf…

牛客13584 日历中的数字

链接:https://ac.nowcoder.com/acm/problem/13584 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 ElemenT马上就要毕业了&#xff0…

许竹青、骆艾荣:数字城市的理念演化、主要类别及未来趋势研究

来源:本文原刊于《中国科技论坛》2021年8月第8期摘要:城市与技术的关系由来已久,但将“数字”这一技术概念与城市连接成为专有名词却是新事物。本文从技术变迁的外生驱动和城市发展问题的内生需求两个角度探讨数字城市兴起及发展的动因&#…

牛客20701 神秘钥匙

链接:https://ac.nowcoder.com/acm/problem/20701 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 clccle一行𝑛个人来到了…

《深入浅出vue.js》阅读笔记之数组变化侦测

1、如何追踪变化 数组的侦测方式和对象不同,比如: this.list.push(1) 此时并不会像改变对象一样触发setter。 同理,要侦测数组的变化意味着我们在改变数组的时候得到通知,如图,我们可以用一个拦截器覆盖Array.prototyp…

时隔16年,Science再次发布“全世界最前沿的125个科学问题”!

来源:文汇报《科学》杂志曾于创刊125周年之际发布过125个推动基础科学研究的科学难题,对指引其后十几年的科学发展产生积极影响。16年过去了,科技发展日新月异,科学突破层出不穷,许多问题得到一定程度的解答&#xff0…

牛客19115 选择颜色

链接:https://ac.nowcoder.com/acm/problem/19115 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 n个人排成一个环形,每个…

当人工智能遇上计算社会科学……

来源:微信公号:计算社会科学家原文出处:《人民论坛学术前沿》作者:华东师范大学哲学系教授 郦全民近年来,由深度学习引爆的“人工智能”,迅速成为科技领域乃至日常生活中的流行词;差不多同时,在…

Linux memcached

Linux memcached memcached是一套分布式的高速缓存系统,使用key-value来缓存数据,是由LiveJournal的Brad Fitzpatrick开发,目前被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。memcached缺乏认证以及安全管制…

牛客18985 数字权重 (数学,快速幂)

链接:https://ac.nowcoder.com/acm/problem/18985 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 小a有一个n位的数字,但是…

Science 封面:史上最小飞行器,有翼微芯片仅沙粒大小,可用于环境监测

来源:机器人大讲堂据最新一期《自然》杂志刊发的论文,西北大学的工程师为电子微芯片增加了一种新的能力:飞行。据了解,这种微芯片大概只有一粒沙子大小,另外它没有马达。相反,它在风中捕获飞行--很像枫树的…

牛客15324 用来作弊的药水

链接:https://ac.nowcoder.com/acm/problem/15324 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 在一个风雨交加的夜晚,来…

由于这个现象,我们永远无法精确测量时间

几乎任何事物都可以作为时钟,只是有些时钟比其他的更好用而已。图片来源:Corinne Reid来源:环球科学2013年,物理学硕士研究生保罗埃凯尔(Paul Erker)仔细翻阅着教科书和论文,试图从中找到“时钟…

牛客15187 分元宵 (快速幂)

链接:https://ac.nowcoder.com/acm/problem/15187 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 s, v, w, p, A list(map(int, i…

“诺奖风向标”2021拉斯克奖公布:授予mRNA疫苗、光遗传学以及戴维·巴尔的摩...

拉斯克奖奖杯来源:科研圈当地时间 9 月 24 日晚间,有“诺奖风向标”之称的拉斯克奖(Lasker Award)公布了 2021 年获奖人名单:基础医学奖 授予为开发光遗传学技术做出突出贡献的卡尔戴瑟罗斯(Karl Deisserot…

牛客14718 开心的涂刷

链接:https://ac.nowcoder.com/acm/problem/14718 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 一天小明同学拿着m种颜色的油漆去涂…

华为全新发布开源操作系统欧拉:覆盖数字基础设施全场景

来源:C114通信网(C114-weixin)作者:舒允文在华为全联接2021上,面向数字基础设施的开源操作系统欧拉(openEuler)全新发布。欧拉操作系统可广泛部署于服务器、云计算、边缘计算、嵌入式等各种形态…

牛客15499 Jxc军训(快速幂,逆元)

链接:https://ac.nowcoder.com/acm/problem/15499 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 在文某路学车中学高一新生军训中&…

《新一代人工智能伦理规范》发布

来源:科技部战略规划司9月25日,国家新一代人工智能治理专业委员会发布了《新一代人工智能伦理规范》(以下简称《伦理规范》),旨在将伦理道德融入人工智能全生命周期,为从事人工智能相关活动的自然人、法人和其他相关机构等提供伦理…

Centos7搭建Redis,同一服务器启动两个端口的Redis

1、安装redis 【1】下载安装包 #准备安装文件夹 mkdir /usr/local/soft/redis #进入文件夹 cd /usr/local/soft/redis #下载安装包 wget http://download.redis.io/releases/redis-4.0.11.tar.gz 【2】安装redis #解压tar zvxf redis-4.0.11.tar.gz#make之前要安装gcc yum -y …