为数据创建一个类
本课属于 Coddy Flutter 学习旅程的“列表和屏幕”单元。第 12 课,共 33 课。
一本书不只是一个字符串:它有书名和作者,而且两者属于同一本书。类描述一种由命名部分组成的新类型的值,这些部分称为字段:
class Book {
final String title;
final String author;
Book(this.title, this.author);
}这一行 Book(this.title, this.author); 是构造函数:它会创建一本新书,并按顺序填入各个字段。Book('Dune', 'Frank Herbert') 表示一本书名为 Dune 的书。
用点号读取字段:book.title、book.author。书籍列表的类型是 List<Book>,就像字符串列表的类型是 List<String> 一样。
类应单独放置在你的小组件类之外,通常放在文件底部。
挑战
中等Book 类只有书名。给它添加作者:
- 添加一个
final String author;字段,并在构造函数中、书名之后为它赋值 - 为每本书添加作者:
Frank Herbert、Jane Austen和James Joyce - 将作者显示为每个列表项的
subtitle
亲手试试
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
final List<Book> books = [
Book('Dune'),
Book('Emma'),
Book('Ulysses'),
];
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(title: const Text('Books')),
body: ListView(
children: [
for (Book book in books)
ListTile(
title: Text(book.title),
),
],
),
),
);
}
}
class Book {
final String title;
Book(this.title);
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
列表和屏幕中的所有课
自己练习: Flutter 在线编译器