PELICULA
package com.alura.screenmatch.modelos;
public class Pelicula extends Titulo{
private String director;
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
}
SERIE
package com.alura.screenmatch.modelos;
public class Serie extends Titulo {
int temporadas;
int episodioPorTemporada;
int minutosPorEpisodio;
@Override
public int getDuracionEnMinutos() {
return temporadas * episodioPorTemporada * minutosPorEpisodio;
}
public int getTemporadas() {
return temporadas;
}
public void setTemporadas(int temporadas) {
this.temporadas = temporadas;
}
public int getEpisodioPorTemporada() {
return episodioPorTemporada;
}
public void setEpisodioPorTemporada(int episodioPorTemporada) {
this.episodioPorTemporada = episodioPorTemporada;
}
public int getMinutosPorEpisodio() {
return minutosPorEpisodio;
}
public void setMinutosPorEpisodio(int minutosPorEpisodio) {
this.minutosPorEpisodio = minutosPorEpisodio;
}
}
TITULO
package com.alura.screenmatch.modelos;
public class Titulo {
private String nombre;
private int fechaDeLanzamiento;
private int duracionEnMinutos;
private boolean incluidoEnPlan;
private double sumaEvaluaciones;
private int totalEvaluaciones;
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 setIncluidoEnPlan(boolean incluidoEnPlan) {
this.incluidoEnPlan = incluidoEnPlan;
}
public int getTotalEvaluaciones() {
return totalEvaluaciones;
}
public int getDuracionEnMinutos() {
return duracionEnMinutos;
}
public int getFechaDeLanzamiento() {
return fechaDeLanzamiento;
}
public String getNombre() {
return nombre;
}
public void MuestraFichaTecnica() {
System.out.println("El nombre de la pelicula es: " + nombre);
System.out.println("Su fecha de lanzamiento es: " + fechaDeLanzamiento);
System.out.println("Su duración en minutos es: " + getDuracionEnMinutos());
}
public void Evalua(double nota) {
sumaEvaluaciones += nota;
totalEvaluaciones++;
}
public double CalcularMedia(){
return sumaEvaluaciones / totalEvaluaciones;
}
public boolean isIncluidoEnPlan(){
return incluidoEnPlan;
}
}
PRINCIPAL
import com.alura.screenmatch.calculos.CalculadoraDeTiempo;
import com.alura.screenmatch.modelos.Pelicula;
import com.alura.screenmatch.modelos.Serie;
public class Principal {
public static void main(String[] args) {
Pelicula pelicula = new Pelicula();
pelicula.setNombre("Encanto");
pelicula.setFechaDeLanzamiento(2021);
pelicula.setDuracionEnMinutos(120);
pelicula.setIncluidoEnPlan(true);
pelicula.MuestraFichaTecnica();
pelicula.Evalua(100);
pelicula.Evalua(300);
System.out.println(pelicula.getTotalEvaluaciones());
System.out.println(pelicula.CalcularMedia());
Pelicula pelicula2 = new Pelicula();
pelicula2.setNombre("Matrix");
pelicula2.setFechaDeLanzamiento(1998);
pelicula2.setDuracionEnMinutos(120);
pelicula2.setIncluidoEnPlan(true);
pelicula2.MuestraFichaTecnica();
pelicula2.Evalua(300);
pelicula2.Evalua(600);
Serie casaDragon = new Serie();
casaDragon.setNombre("Casa del dragon");
casaDragon.setFechaDeLanzamiento(1998);
casaDragon.setTemporadas(1);
casaDragon.setMinutosPorEpisodio(50);
casaDragon.setEpisodioPorTemporada(10);
casaDragon.MuestraFichaTecnica();
System.out.println(casaDragon.getDuracionEnMinutos());
CalculadoraDeTiempo calculadora = new CalculadoraDeTiempo();
calculadora.incluye(pelicula);
calculadora.incluye(casaDragon);
calculadora.incluye(pelicula2);
System.out.println("Tiempo necesario para ver los titulos es: "+calculadora.getTiempoTotal());
}
}
CALCULADORA DE TIEMPO
package com.alura.screenmatch.calculos;
import com.alura.screenmatch.modelos.Pelicula;
import com.alura.screenmatch.modelos.Titulo;
public class CalculadoraDeTiempo {
private int tiempoTotal;
public int getTiempoTotal() {
return tiempoTotal;
}
public void incluye(Titulo titulo){
this.tiempoTotal += titulo.getDuracionEnMinutos();
}
}