crear una nueva clase llamada Título en el paquete com.aluracursos.screenmatch.modelos, y trasladar a ella todos los atributos y métodos de la clase Pelicula:
package com.aluracursos.screenmatch.modelos;
public class Titulo { private String nombre; private int fechaDeLanzamiento; private int duracionEnMinutos; private boolean incluidoEnElPlan; private double sumaDeLasEvaluaciones; private int totalDelasEvaluaciones;
public String getNombre() {
return nombre;
}
public int getFechaDeLanzamiento() {
return fechaDeLanzamiento;
}
public int getDuracionEnMinutos() {
return duracionEnMinutos;
}
public boolean isIncluidoEnElPlan() {
return incluidoEnElPlan;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setFechaDeLanzamiento(int fechaDeLanzamiento) {
this.fechaDeLanzamiento = fechaDeLanzamiento;
}
public void setDuracionEnMinutos(int duracionEnMinutos) {
this.duracionEnMinutos = duracionEnMinutos;
}
public void setIncluidoEnElPlan(boolean incluidoEnElPlan) {
this.incluidoEnElPlan = incluidoEnElPlan;
}
public int getTotalDelasEvaluaciones(){
return totalDelasEvaluaciones;
}
public void muestraFichaTecnica(){
System.out.println("El nombre es: " + nombre);
System.out.println("Su fecha de lanzamiento es: " + fechaDeLanzamiento);
System.out.println("Duración en minutos: "+ getDuracionEnMinutos());
}
public void evalua(double nota){
sumaDeLasEvaluaciones += nota;
totalDelasEvaluaciones++;
}
public double calculaMedia(){
return sumaDeLasEvaluaciones / totalDelasEvaluaciones;
}
}
En la clase Película, deberás heredar de la clase Título e incluir el atributo director junto con los métodos getter/setter de ese atributo:
public class Pelicula extends Titulo { private String director;
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
Copia el código Luego, deberás crear la clase Serie, que también heredará de la clase Título y tendrá los atributos temporadas, episodiosPorTemporada y minutosPorEpisodio, junto con los métodos getter/setter de estos atributos:
package com.aluracursos.screenmatch.modelos;
public class Serie extends Titulo { int temporadas; int episodiosPorTemporada; int minutosPorEpisodio;
public int getTemporadas() {
return temporadas;
}
public void setTemporadas(int temporadas) {
this.temporadas = temporadas;
}
public int getEpisodiosPorTemporada() {
return episodiosPorTemporada;
}
public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
this.episodiosPorTemporada = episodiosPorTemporada;
}
public int getMinutosPorEpisodio() {
return minutosPorEpisodio;
}
public void setMinutosPorEpisodio(int minutosPorEpisodio) {
this.minutosPorEpisodio = minutosPorEpisodio;
}
} Copia el código Aún en la clase Serie, sobrescribe el método getDuracaoEmMinutos:
@Override public int getDuracionEnMinutos() { return temporadas * episodiosPorTemporada * minutosPorEpisodio; } Copia el código Finalmente, crea el paquete com.aluracursos.screenmatch.calculos y dentro de él crea la clase CalculadoraDeTiempo:
package com.aluracursos.screenmacth.calculos; import com.aluracursos.screenmatch.modelos.Titulo;
public class CalculadoraDeTiempo { private int tiempoTotal;
public int getTiempoTotal() {
return tiempoTotal;
}
public void incluye(Titulo titulo){
this.tiempoTotal += titulo.getDuracionEnMinutos();
}
}
Para probar los nuevos códigos, modifica el método main de la clase Principal:
public class Principal { public static void main(String[] args) { Pelicula miPelicula = new Pelicula(); miPelicula.setNombre("Encanto"); miPelicula.setFechaDeLanzamiento(2021); miPelicula.setDuracionEnMinutos(120); miPelicula.setIncluidoEnElPlan(true);
miPelicula.muestraFichaTecnica();
miPelicula.evalua(10);
miPelicula.evalua(10);
miPelicula.evalua(7.8);
System.out.println(miPelicula.getTotalDelasEvaluaciones());
System.out.println("Média de evaluaciones de la película: " + miPelicula.calculaMedia());