用Java面向对象开发图书管理系统,以Book、Reader、Library类为核心,通过ArrayList内存管理数据,实现增删改查、借阅归还及控制台交互。

用Java面向对象方式开发一个简单图书管理系统,核心是把“书”“读者”“借阅”这些现实概念变成类,并通过封装、继承、多态和集合来组织逻辑。不需要数据库,用ArrayList内存管理数据,适合初学OOP后巩固设计能力。
图书与读者类的设计要点
Book类应包含ISBN(唯一标识)、书名、作者、出版年份、是否可借等属性,提供带参构造器和getter/setter;Reader类包含读者编号、姓名、手机号、可借册数上限。两个类都重写toString方便打印,equals和hashCode建议根据主键(如ISBN/读者号)实现,便于后续查找和去重。
用ArrayList模拟图书库和读者库
创建Library类作为系统主控,内部用两个ArrayList分别存放Book和Reader对象:
- private List
bookList = new ArrayList(); - private List
readerList = new ArrayList();
所有增删改查操作都围绕这两个集合展开。例如“按书名模糊查询”,遍历bookList,用String.contains()匹配;“借书”前先检查Book.isAvailable()为true,再将读者ID记入借阅记录(可用简单List
立即学习“Java免费学习笔记(深入)”;
借阅管理与状态控制
不单独建Borrow类也可实现基础功能:在Book中加private String borrowedBy;字段,借出时赋值读者编号,归还时置null;同时在Reader类中加List
– 该书是否存在且可借
– 该读者是否存在
– 该读者当前借阅数是否已达上限
每一步校验失败都给出明确提示,避免静默失败。
控制台交互与功能组织
用Scanner实现简易菜单驱动界面,主循环显示选项如:1.添加图书 2.查询图书 3.注册读者 4.办理借书 5.办理还书 0.退出。每个选项调用对应方法,方法内完成输入解析、业务校验、集合操作和结果反馈。建议把重复的“请输入XXX”逻辑封装成工具方法,比如inputString("书名"),提升可读性。










