Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haga lo que hicimos en aula: ArrayList y toString

modelos/Titulo.java

package modelos;

// Clase base simplificada para la demostración
public class Titulo {
    private String nombre;
    private int fechaDeLanzamiento;
    private int duracionEnMinutos;
    
    // Constructor
    public Titulo(String nombre, int fechaDeLanzamiento, int duracionEnMinutos) {
        this.nombre = nombre;
        this.fechaDeLanzamiento = fechaDeLanzamiento;
        this.duracionEnMinutos = duracionEnMinutos;
    }

    // Getters necesarios para Pelicula.toString()
    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }
    
    // ... otros métodos y setters
}

modelos/Pelicula.java

package modelos;

// Asumimos que esta clase está en el mismo paquete que Titulo
public class Pelicula extends Titulo {
    private String director;

    // Constructor que llama al constructor del padre (Titulo)
    public Pelicula(String nombre, int fechaDeLanzamiento, int duracionEnMinutos, String director) {
        super(nombre, fechaDeLanzamiento, duracionEnMinutos);
        this.director = director;
    }

    /**
     * Sobreescribe el método toString() heredado de Object.
     * Esto proporciona una representación legible del objeto Pelicula.
     */
    @Override
    public String toString() {
        return "Película: " + this.getNombre() + 
               " (" + this.getFechaDeLanzamiento() + ")";
    }

    // Getters y Setters
    public String getDirector() { return director; }
    public void setDirector(String director) { this.director = director; }
}

principal/Principal.java

package principal;

import modelos.Pelicula;
import modelos.Titulo; // Importamos si necesitamos más tarde
import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        
        // Crear objetos Pelicula
        Pelicula favorito = new Pelicula("Matrix", 1999, 136, "Hermanas Wachowski");
        Pelicula otro = new Pelicula("Dune", 2021, 155, "Denis Villeneuve");
        Pelicula miPeli = new Pelicula("El Origen", 2010, 148, "Christopher Nolan");

        // 1. Crear el ArrayList (Colección)
        ArrayList<Pelicula> listaDePeliculas = new ArrayList<>();
        
        // 2. Agregar los objetos a la lista
        listaDePeliculas.add(favorito);
        listaDePeliculas.add(otro);
        listaDePeliculas.add(miPeli);

        // 3. Imprimir información de la lista
        System.out.println("Tamaño de la lista: " + listaDePeliculas.size());
        System.out.println("Primera película: " + listaDePeliculas.get(0)); 
        
        // Al imprimir la lista completa, se llama automáticamente 
        // a toString() de cada objeto de la lista.
        System.out.println("\n--- Lista completa (usando toString() sobrescrito) ---");
        System.out.println(listaDePeliculas); 
        
        System.out.println("-----------------------------------------------------");

        // Opcional: Iterar sobre la lista
        System.out.println("\n--- Iterando sobre la lista ---");
        for (Pelicula peli : listaDePeliculas) {
            System.out.println(peli.getNombre());
            System.out.println("Director: " + peli.getDirector());
        }
    }
}
1 respuesta

Hola Mario, espero que estés bien

Parece que ya has implementado correctamente lo que se pidió en la actividad. Has sobrescrito el método toString() en la clase Pelicula, lo que permite que cada vez que imprimes un objeto Pelicula, se muestre un formato legible con el nombre de la película y su año de lanzamiento.

Además, en tu clase Principal, has creado un ArrayList de películas, has añadido varias películas a la lista y has impreso tanto el tamaño de la lista como la primera película. También has mostrado cómo imprimir toda la lista, lo que automáticamente utiliza el método toString() sobrescrito para cada objeto Pelicula en la lista.

Tu código adicional para iterar sobre la lista e imprimir el nombre del director es una excelente manera de mostrar más información sobre cada película. ¡Buen trabajo!

Espero que esto te ayude a confirmar que estás en el camino correcto. ¡Espero haber ayudado y buenos estudios!