首先我们要了解我们做一个图书管理系统大概需要什么
这里我创建了一共三个包,分别是book和ioperation还有user,这三个包都分别创建了一些类。
我们先来看这个book包
里面创建了两个类,分别是书和书架
1、Book
Book类是用来定义书的名字、作者等
当然这里面也用到了一些方法,比如获取书名,获取借阅情况,设置借阅情况等方法
2、Booklist
Booklist类是通过取构造书架,去存放书,并为书去进行初始化
这里面我们除了去创建Book类的对象,还有一些方法,比如获取书架类的当前书本数量,以及获取书架最多存放数量,还有设置书架书本数量,等方法。
2、ioperation
这里我们可以看到ioperation包中,有很多类,还有一个接口
、
而接口里面只有一个work方法去规范其他类定义此方法,就比如我们的Findioperation类
1、Findioperation
里面大致就是去重写接口中的方法
2、Addioperation
3、Borrowioperation
4、Delioperation
5、Exitioperation
6、Returnioperation
7、Showioperation
这就是需要的几个类和接口了
3、User
这里面有三个类,其中User是个抽象类,另外两个类是继承这个抽象类的。
1、AdminUser
2、NormalUser
4、Main(主函数)
5、对系统的一些理解
这里面我们先来看主函数的一些信息,主函数去创建了一个书架类的对象,如何通过一个函数来判断创建的user类是NormalUser类还是AdminUser类,然后通过去调用不同User的菜单去进行不同的选项,最后通过不同的选项在书架里去进行操作。
这里面要去实现这个系统还是要通过32行的这个函数去进行操作
通过这ioperation数组去调用方法,这里面就使用到了匿名对象的方法
然后通过去创建这个对象然后直接调用它们重写的work方法,并传入我们所创建的booklist的对象。
接下来我们进入这几个类中进行查看
我们就拿最难的Findioperation来看
这里面我们先通过booklist.getUsedSize()方法来获取书架当前书本数量,以及通过booklist.getbook().length来获取书架最大书本数量,通过判断两者的数量来判断书架是否已经满了。
如何没满我们就来插入书本,要插入书本我们就要先创建这本书的对象。
如何在通过遍历book数组来进行判断是否存在这本书,紧接着我们来看if里面的条件,这里面有点长,我们慢慢分析。
紧接着我们我们通过booklist里面的setBooks()来插入书籍,最后我们booklist.setUsedsize来设置书架当前数量+1,最后显示插入成功。
至于其他的也是一样的了。
如果有地方写错了,欢迎大家来指出。