Menu
CoddyTech

Класс для ваших данных

Часть раздела Списки и экраны путешествия по Flutter на Coddy. Урок 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>.

Объявляйте класс отдельно, за пределами классов виджетов, обычно в конце файла.

challenge icon

Задание

Средне

У класса 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);
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Списки и экраны

Потренируйтесь самостоятельно: Онлайн-компилятор Flutter