Menu
CoddyTech

データを扱うクラス

CoddyのFlutterジャーニー「リストと画面」セクションの一部。レッスン 12/33。

本は単なる1つの文字列ではありません。タイトルと著者があり、それらはひとまとまりです。クラスは、フィールドと呼ばれる名前付きの部分で構成される、新しい種類の値を記述します。

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オンラインコンパイラ