图书和用户类
本课属于 Coddy Dart 学习旅程的“面向对象编程”单元。第 102 课,共 110 课。
挑战
简单在上一课中,你创建了一个具有基本属性和 toString() 方法的 Book 类。现在,你可以通过添加一个 User 类来扩展图书馆系统,用它表示可以借阅图书的图书馆成员。
你需要创建一个新文件,并更新现有文件:
book.dart:为现有的Book类添加一个isAvailable属性(布尔值),默认值为true。这个属性用于记录图书是否可以借阅。user.dart:创建一个新的User类,用来表示图书馆成员。每个用户都应有一个id(字符串)、一个name(字符串),以及一个用于保存Book对象的borrowedBooks列表。添加一个用于初始化 id 和 name 的构造函数,并将已借阅图书列表设为空列表。重写toString(),使其返回格式User [id]: name (X books borrowed),其中 X 是已借阅图书的数量。main.dart:导入图书文件和用户文件。创建一本 ISBN 为978-0-13-468599-1、标题为The Pragmatic Programmer、作者为David Thomas的图书。创建一个 id 为U001、姓名为Alice Johnson的用户。打印图书,然后使用格式Available: true或Available: false打印图书是否可借阅。打印用户。然后,将这本图书添加到用户的已借阅图书列表中,将图书的isAvailable设为false,再打印一次用户,以显示更新后的图书数量。
这就建立了图书和用户之间的关系,你将在下一课实现完整的借阅系统时以此为基础继续开发!
预期输出:
[978-0-13-468599-1] The Pragmatic Programmer by David Thomas
Available: true
User U001: Alice Johnson (0 books borrowed)
User U001: Alice Johnson (1 books borrowed)亲手试试
import 'book.dart';
// TODO: 导入 user.dart
void main() {
// TODO: 创建一本书,ISBN 为 '978-0-13-468599-1',书名为 'The Pragmatic Programmer',作者为 'David Thomas'
// TODO: 创建一个用户,id 为 'U001',姓名为 'Alice Johnson'
// TODO: 打印这本书
// TODO: 按以下格式打印这本书是否可借阅:Available: true/false
// TODO: 打印该用户
// TODO: 将这本书添加到该用户的 borrowedBooks 列表中
// TODO: 将这本书的 isAvailable 设置为 false
// TODO: 再次打印该用户,显示更新后的借书数量
}
面向对象编程中的所有课
自己练习: Dart 在线编译器