Menu
Coddy logo textTech

Clases de Libros y Usuarios

Parte de la sección Programación Orientada a Objetos del Journey de Dart de Coddy — lección 102 de 110.

challenge icon

Desafío

Fácil

En la lección anterior, creaste una clase Book con propiedades básicas y un método toString(). Ahora es el momento de expandir tu sistema de biblioteca agregando una clase User para representar a los miembros de la biblioteca que pueden pedir prestados libros.

Necesitarás crear un nuevo archivo y actualizar tus archivos existentes:

  • book.dart: Mejora tu clase Book existente agregando una propiedad isAvailable (booleana) que por defecto sea true. Esto servirá para rastrear si un libro puede ser prestado.
  • user.dart: Crea una nueva clase User para representar a los miembros de la biblioteca. Cada usuario debe tener un id (String), name (String) y una lista borrowedBooks que contenga objetos Book. Incluye un constructor que inicialice el id y el nombre, con una lista vacía para los libros prestados. Sobrescribe toString() para devolver el formato User [id]: name (X books borrowed) donde X es la cantidad de libros prestados.
  • main.dart: Importa tanto tus archivos de libro como de usuario. Crea un libro con ISBN 978-0-13-468599-1, título The Pragmatic Programmer y autor David Thomas. Crea un usuario con id U001 y nombre Alice Johnson. Imprime el libro, luego imprime si está disponible usando el formato Available: true o Available: false. Imprime al usuario. Luego, agrega el libro a la lista de libros prestados del usuario, establece el isAvailable del libro en false e imprime al usuario nuevamente para mostrar el recuento de libros actualizado.

¡Esto establece la relación entre libros y usuarios sobre la cual construirás cuando implementes el sistema de préstamo completo en la próxima lección!

Salida esperada:

[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)

Pruébalo tú mismo

import 'book.dart';
// TODO: Importar user.dart

void main() {
  // TODO: Crear un libro con ISBN '978-0-13-468599-1', título 'The Pragmatic Programmer', y autor 'David Thomas'
  
  // TODO: Crear un usuario con id 'U001' y nombre 'Alice Johnson'
  
  // TODO: Imprimir el libro
  
  // TODO: Imprimir si el libro está disponible usando el formato: Available: true/false
  
  // TODO: Imprimir el usuario
  
  // TODO: Añadir el libro a la lista borrowedBooks del usuario
  
  // TODO: Establecer el isAvailable del libro a false
  
  // TODO: Imprimir el usuario de nuevo para mostrar el recuento de libros actualizado
}

Todas las lecciones de Programación Orientada a Objetos