Titulo.java
package com.alura.screenmatch.modelos;
public class Titulo implements Comparable {
private String nombre;
private int fechaDeLanzamiento;
// Constructor
public Titulo(String nombre, int fechaDeLanzamiento) {
this.nombre = nombre;
this.fechaDeLanzamiento = fechaDeLanzamiento;
}
// Getters
public String getNombre() {
return nombre;
}
public int getFechaDeLanzamiento() {
return fechaDeLanzamiento;
}
// Implementación de compareTo
@Override
public int compareTo(Titulo otroTitulo) {
return this.getNombre().compareTo(otroTitulo.getNombre());
}
// Método toString
@Override
public String toString() {
return this.getNombre() + " (" + this.getFechaDeLanzamiento() + ")";
}
}
Serie.java
package com.alura.screenmatch.modelos;
public class Serie extends Titulo {
private int temporadas;
public Serie(String nombre, int fechaDeLanzamiento, int temporadas) {
super(nombre, fechaDeLanzamiento);
this.temporadas = temporadas;
}
public int getTemporadas() {
return temporadas;
}
@Override
public String toString() {
return "Serie: " + this.getNombre() + " (" + this.getFechaDeLanzamiento() + ")";
}
}
Pelicula.java
package com.alura.screenmatch.modelos;
public class Pelicula extends Titulo {
private String director;
public Pelicula(String nombre, int fechaDeLanzamiento, String director) {
super(nombre, fechaDeLanzamiento);
this.director = director;
}
public String getDirector() {
return director;
}
@Override
public String toString() {
return "Película: " + this.getNombre() + " (" + this.getFechaDeLanzamiento() + ")";
}
}
PrincipalConListas.java
package com.alura.screenmatch.principal;
import com.alura.screenmatch.modelos.*;
import java.util.ArrayList;
import java.util.Collections;
public class PrincipalConListas {
public static void main(String[] args) {
Pelicula favorito = new Pelicula("El señor de los anillos", 2001, "Peter Jackson");
Pelicula otro = new Pelicula("Matrix", 1999, "Lana Wachowski");
Serie serie = new Serie("Breaking Bad", 2008, 5);
ArrayList<Titulo> lista = new ArrayList<>();
lista.add(favorito);
lista.add(otro);
lista.add(serie);
// Ordenar los títulos usando Comparable
Collections.sort(lista);
// Mostrar lista ordenada
System.out.println(lista);
}
}