Menu
CoddyTech

Una clase para tus datos

Parte de la sección Listas y pantallas del Journey de Flutter de Coddy. Lección 12 de 33.

Un libro es más que una cadena: tiene un título y un autor, y van juntos. Una clase describe un nuevo tipo de valor compuesto por partes con nombre, llamadas campos:

class Book {
  final String title;
  final String author;

  Book(this.title, this.author);
}

La línea Book(this.title, this.author); es el constructor: crea un libro nuevo y completa sus campos, en ese orden. Book('Dune', 'Frank Herbert') es un libro cuyo título es Dune.

Lee un campo usando un punto: book.title, book.author. Una lista de libros tiene el tipo List<Book>, del mismo modo que una lista de cadenas es List<String>.

Una clase va por separado, fuera de las clases de tus widgets, normalmente al final del archivo.

challenge icon

Desafío

Intermedio

La clase Book solo tiene un título. Añádele un autor:

  • añade un campo final String author; y asígnale un valor en el constructor, después del título
  • asigna a cada libro su autor: Frank Herbert, Jane Austen y James Joyce
  • muestra el autor como subtitle de cada elemento

Pruébalo tú mismo

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 iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Listas y pantallas

Practica por tu cuenta: Compilador de Flutter online