Menu
CoddyTech

图书和用户类

本课属于 Coddy Dart 学习旅程的“面向对象编程”单元。第 102 课,共 110 课。

challenge icon

挑战

简单

在上一课中,你创建了一个具有基本属性和 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 在线编译器