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());
}
}
}