项目概述与 UML 设计
本课属于 Coddy Java 学习旅程的“面向对象编程”单元。第 77 课,共 87 课。
挑战
简单让我们通过搭建基础来启动图书馆管理系统项目:创建其他所有部分都依赖的核心实体类。本次挑战将重点放在创建结构良好的 Book 和 User 类上,用它们来表示系统的核心实体。
你需要将代码分散到三个文件中:
Book.java:创建表示图书馆藏书的Book类。每本书都应有以下私有字段:isbn(String)、title(String)、author(String)和isAvailable(boolean,默认值为true)。添加一个接收 isbn、title 和 author 的构造函数。为所有字段提供合适的 getter 方法,并为isAvailable提供 setter。添加一个getDetails()方法,返回格式化后的字符串:[isbn] title by author。User.java:创建表示图书馆会员的User类。每个用户都应有以下私有字段:id(String)和name(String)。添加一个接收这两个值的构造函数,并为每个字段提供 getter 方法。添加一个toString()方法,返回:User[id]: name。Main.java:将这些类组合起来,演示它们能否正常工作。你会收到五个输入:图书的 ISBN、书名和作者,然后是用户的 ID 和姓名。使用前三个输入创建一个
Book,再使用最后两个输入创建一个User。使用getDetails()打印图书详情,然后按Available: true或Available: false的格式打印图书是否可借。最后,使用用户的toString()方法打印用户信息。
你会依次收到五个输入:ISBN(String)、书名(String)、作者(String)、用户 ID(String)和用户名(String)。
例如,输入 978-0-13-468599-1、Effective Java、Joshua Bloch、U001 和 Alice Smith 时,输出如下:
[978-0-13-468599-1] Effective Java by Joshua Bloch
Available: true
User[U001]: Alice Smith这些基础类将作为整个图书馆管理系统的构建模块。在接下来的课程中,你会为它们添加借阅功能、搜索功能等!
亲手试试
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取图书信息
String isbn = scanner.nextLine();
String title = scanner.nextLine();
String author = scanner.nextLine();
// 读取用户信息
String userId = scanner.nextLine();
String userName = scanner.nextLine();
// TODO: 使用 isbn、title 和 author 创建一个 Book 对象
// TODO: 使用 userId 和 userName 创建一个 User 对象
// TODO: 使用 getDetails() 打印图书的详细信息
// TODO: 打印图书是否可借阅(格式:"Available: true" 或 "Available: false")
// TODO: 使用 toString() 打印用户信息
}
}
面向对象编程中的所有课
自己练习: Java 在线编译器