测试阶段
管理员用户功能测试
查找图书操作
- 查找有的图书:
- 查找没有的图书
新增图书操作
展示图书操作
删除图书操作
- 删除有的图书
- 删除没有的图书
普通用户功能测试
查找图书操作
借阅图书操作
归还图书操作
当还完继续还的时候
当还的书书架上没有的时候
面向对象编程思想的体现
类的定义和对象的创建
- 我们定义一个"Book"类来表示图书的属性和行为
- 我们定义一个"BookList"类来表示存放图书的书架的属性和行为
- 我们默认书架上有5本书,一开始就创建了5个Book对象
- 我们每一次新增图书的时候都会再创建一个图书对象,并把这个对象放入书架上
封装
在上面的例子中,我们使用了封装来隐藏Book类的内部实现细节。图书的属性(书名、作者、价格、类型、是否被借出)都被声明为私有(private),这意味着它们不能直接从外部访问。我们为每一个属性都提供了公共的(getter/setter)方法来让外部代码访问这些属性的值。
get是得到属性的值,set是设置属性的值
继承
我们的管理员和普通用户都有一些共性:都有名字,都会生产一个可以选择操作的菜单,两者的行为其实是一样的,只是可以操作的选项不同。所以我们在User类中把这些全定义好,通过管理员和普通用户来继承实现这些功能。
多态
在系统中,我们选择不同的用户类型会出现不同的功能菜单。是因为我们对menu这个方法进行了重写,不同的对象调用这个方法会执行自己重写了的逻辑和功能。
通过使用多态,我们可以使用相同的方法处理不同类型的对象,这样代码更加灵活和可复用。
抽象类
在上面的例子中,我们已经看到了Java中的抽象类的使用。在这个示例中,User类被声明为抽象类,它是一种抽象的概念,它表示用户的通用属性。
接口
在上面的示例中,我们把所有的操作定义成了一个接口,我们定义IOperation接口就是进行所有的功能操作,然后通过不同的类来分别实现各自的功能。通过这个接口我们可以控制所有的功能。
总结
这个简单的图书管理系统演示了Java面向对象编程的各个概念的应用。实际的项目中,面向对象编程将更复杂和丰富,但这个示例可以帮助你理解如何在实际项目中应用面向对象编程的概念。