介绍
欢迎来到 JavaTown 图书馆,这是编程世界中最先进的数字图书馆!作为一名新入职的软件开发人员,你的首要任务是协助为图书馆海量的编程书籍馆藏创建一个数字目录系统。
你的任务(如果你选择接受的话)是完成 Book 类,该类将用于表示图书馆系统中的每一本书。这个类将存储每本书的重要信息,并提供与这些信息进行交互的方法。
你准备好带领 JavaTown 图书馆进入数字化时代了吗?让我们开始编码吧!
完成 Book 类
在本次练习中,你将创建一个图书馆管理系统的基础构建块。这项任务将帮助你练习 Java 中的面向对象编程概念,包括类设计、方法实现和状态管理。通过完成这个挑战,你将在创建实用的现实世界应用程序方面获得宝贵的经验。让我们潜入虚拟书籍的世界吧!
任务
- 打开
~/project目录下预先创建的文件Book.java。 - 找到代码中的 TODO 注释。
- 根据要求添加缺失的代码以完成
Book类。
要求
Book.java文件应已存在于~/project目录中。- 完成构造函数以初始化所有字段(title、author、publicationYear 和 isAvailable)。
- 实现
borrowBook()方法:- 如果书籍可用,将 isAvailable 设置为 false 并返回 true。
- 如果书籍不可用,返回 false。
- 实现
returnBook()方法:- 将 isAvailable 设置为 true。
- 实现
getFormattedBookDetails()方法:- 返回一个包含书名、作者和出版年份的字符串。
- 格式应为:「Title by Author (Year)」
示例
正确完成后,main 方法中的以下代码:
Book book = new Book("Java Programming", "John Doe", 2023);
System.out.println(book.getFormattedBookDetails());
System.out.println("Is book available? " + book.isAvailable());
boolean borrowed = book.borrowBook();
System.out.println("Book borrowed successfully? " + borrowed);
System.out.println("Is book available now? " + book.isAvailable());
book.returnBook();
System.out.println("Is book available after return? " + book.isAvailable());
应当产生类似于以下的输出:
cd ~/project
javac Book.java
java Book
示例输出:
Java Programming by John Doe (2023)
Is book available? true
Book borrowed successfully? true
Is book available now? false
Is book available after return? true
总结
在这个挑战中,你创建了一个 Book 类,它展示了 Java 面向对象编程的关键概念:
- 封装:
Book类封装了与书籍相关的数据(title、author、publicationYear、isAvailable)和行为(borrowBook、returnBook、getFormattedBookDetails)。 - 构造函数:你实现了一个构造函数,用于在创建新的
Book对象时初始化书籍的属性。 - 方法:你创建了代表书籍可能经历的动作(借阅和归还)的方法,以及一个用于检索书籍信息的方法。
- 状态管理:
isAvailable属性以及borrowBook和returnBook方法演示了对象如何管理其内部状态。
这个 Book 类构成了图书馆管理系统的基础。在实际应用中,你可以通过创建一个管理 Book 对象集合的 Library 类,或者添加更复杂的借阅规则来扩展此功能。
请记住,面向对象编程的核心在于用代码对现实世界的概念进行建模。在你继续 Java 编程的学习旅程中,请寻找机会将事物表示为同时具有数据和行为的对象。
继续练习并尝试修改你的代码。尝试为 Book 类添加更多方法,例如更新书名或作者的方法。或者创建一个可以存储和管理多个 Book 对象的 Library 类。你编写的代码越多,就会对 Java 和面向对象编程概念越熟悉。



