Java模拟实现图书管理(继承,多态)

代码:106 JavaSE: 106期Java代码 - Gitee.com

以上是所有创建的接口和类。

进入后选择身份是管理员还是普通用户,根据不同用户提供不同的菜单,可选择的功能也不同。

Book类:设置一下基础成员变量构造方法。getter和setter和一个toString方法也很简单。

BookList里在创建一个Book[]数组,在构造方法里初始化几本书,还有一个memoryused属性记录一共存放了几本书。getBooks()后面返还Book[]数组,相当于getter。

User是一个抽象类,Admin和NormalUser是子类,继承了User

menu()方法写成了抽象方法,因为类中存在了抽象方法,所以类必须是抽象类。

operation对象存放的是各种功能,但是因为管理员和普通用户的权限不同,不能在User里初始化。在operation包里所有的类都是实现了IOperation这个接口,所以可以存放在IOperation这个数组里,这里是向上转型。

doOperations(int choice, BookList booklist)里只需要获得用户选择的功能,根据数字调用IOperation[]里面的方法。

功能里,只有删除会复杂一点。查找的话,用名字在books里进行遍历查找就行。 借阅和归还也是遍历,如果找到了,就把isBorrowed的属性进行修改。显示所有图书,遍历打印。 

这里把booklist中books数组最后一个元素设为null不够准确,应该说是最后一本书,因为删除了一本书之后,所有的书都在数组上前进了一个位置,当把最后一本书付给倒数第二本书时,把最后的一个元素设为null并且在memoryused元素-1就把删除做完了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值