图片出处:The world's biggest drone photo and video sharing platform | SkyPixel.com
导言
在学完JavaSE语法后,我们就可以去尝试写一个简单的图书管理系统来进一步提升我们面对对象编程的思想。在该系统中会涉及到数组,接口,封装,继承,多态等等语法知识,希望能够帮助到大家!
目录
1,需求分析
(1)找对象
在开始编写代码之前,我们需要先找到该系统可能涉及的对象,如下:
书
书架
管理员
普通用户
(2)功能设计
我将根据使用者访问权限的不同,计划分为两个使用者类,如下:
管理员:
- 上架图书
- 下架图书
- 查找图书
- 显示所有图书
- 修改图书状态
- 退出系统
普通用户:
- 借阅图书
- 归还图书
- 查找图书
- 图书借阅排行榜
- 退出系统
可以看出,上述所有功能都是依赖于书架进行操作的,但是由于需要区分使用权限,故将所有功能统一放在一个包中,再在用户类中以转移表的方式进行调用,此操作在后续会进行详细讲解。
2,创建对象
当找到对象后,就可以开始创建对象,我们可以先将所想到的属性详尽地描述,后续再查漏补缺。同时,在创建对象时需要注意类的封装性。
(1)使用包对类进行管理
在创建对象之前,先按照对象的类型创建三个包:
aboutTheBook --关于书的包,存放书架,书等类
aboutUsers --关于用户的包,存放管理员,普通用户等类
operations --关于操作方法的包
(2)对象的创建
(1)aboutTheBook包
<1>Book类
对于Book类而言,可根据具体需求对其添加属性,并且由于它是本系统中最基础的操作单位,故要对其进行封装。
<2>BookShelf
BookShelf类主要用来存放书,并对书进行管理。此处我使用的是数组结构,如下:
(2)operations包
<1>IOperation类
在operation包中存放的是所有和图书管理有关的操作方法类,故我创建了接口IOperation,并让每个类都实现该接口。由此便可使用 IOperation类型数组对所有的方法进行组织。
目前IOPeration接口代码如下:
(因为所有的操作都是围绕书架进行的,故work的参数列表中应当传递BookShelf)
<2>操作方法类
操作方法在后文中会详细地讲到,目前只是代码框架的搭建,以Add类为例,目前每个类的实现如下: