Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

Haga lo que hicimos en aula: aplicando polimorfismo con herencia

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

}

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