Menu
CoddyTech

项目概述与 UML 设计

本课属于 Coddy Java 学习旅程的“面向对象编程”单元。第 77 课,共 87 课。

challenge icon

挑战

简单

让我们通过搭建基础来启动图书馆管理系统项目:创建其他所有部分都依赖的核心实体类。本次挑战将重点放在创建结构良好的 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 在线编译器