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

package com.aluracursos.screenmatch.modelos;

public class Titulo {

private String nombre;
private int fechaLanzamiento;
private int duracionEnMinutos;
private boolean incluidoEnElPlan;

private double sumaDeLasEvaluaciones;
private int totalDeLasEvaluaciones;

public String getNombre() {
    return nombre;
}

public int getFechaLanzamiento() {
    return fechaLanzamiento;
}

public int getDuracionEnMinutos() {
    return duracionEnMinutos;
}

public boolean isIncluidoEnElPlan() {
    return incluidoEnElPlan;
}

public void setName(String nombre){
    this.nombre = nombre;
}

public void setFechaLanzamiento(int fechaLanzamiento) {
    this.fechaLanzamiento = fechaLanzamiento;
}

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("Mi película es:"+nombre);
    System.out.println("Su fecha de lanzamiento es:"+fechaLanzamiento);
    System.out.println("Duración en minutos:"+getDuracionEnMinutos());
}

public void evalua(double nota){
    sumaDeLasEvaluaciones += nota;
    totalDeLasEvaluaciones ++;

}

public double calculaMedia(){
    return sumaDeLasEvaluaciones/totalDeLasEvaluaciones;
}

}

package com.aluracursos.screenmatch.modelos;

public class Serie extends Titulo{

int temporadas;
int episodioPorTemporada;
int minutoPorEpisodio;

@Override
public int getDuracionEnMinutos(){
    return temporadas*episodioPorTemporada*minutoPorEpisodio;
}

public int getTemporada() {
    return temporadas;
}

public void setTemporada(int temporada) {
    this.temporadas = temporada;
}

public int getEpisodioPorTemporada() {
    return episodioPorTemporada;
}

public void setEpisodiosPorTemporada(int episodioPorTemporada) {
    this.episodioPorTemporada = episodioPorTemporada;
}

public int getMinutoPorEpisodio() {
    return minutoPorEpisodio;
}

public void setMinutosPorEpisodio(int minutoPorEpisodio) {
    this.minutoPorEpisodio = minutoPorEpisodio;
}

}

mport com.aluracursos.screenmatch.modelos.Pelicula; import com.aluracursos.screenmatch.modelos.Serie; import com.aluracursos.screenmatch.calculos.CalculadoraDeTiempo;

public class Principal { public static void main(String[] args) { Pelicula miPelicula = new Pelicula(); miPelicula.setName("Encanto"); miPelicula.setFechaLanzamiento(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(miPelicula.calculaMedia());

    Serie casaDragon = new Serie();
    casaDragon.setName("La casa del Dragón");
    casaDragon.setFechaLanzamiento(2022);
    casaDragon.setTemporada(1);
    casaDragon.setMinutosPorEpisodio(50);
    casaDragon.setEpisodiosPorTemporada(10);
    casaDragon.muestraFichaTecnica();
    System.out.println(casaDragon.getDuracionEnMinutos());

    Pelicula otraPelicula = new Pelicula();
    otraPelicula.setName("Matrix");
    otraPelicula.setFechaLanzamiento(1998);
    otraPelicula.setDuracionEnMinutos(180);

    CalculadoraDeTiempo calculadora = new CalculadoraDeTiempo();
    calculadora.incluye(miPelicula);
    calculadora.incluye(casaDragon);
    calculadora.incluye(otraPelicula);
    System.out.println("Tiempo necesario para ver tus títulos favoritos estas vacaciones:"+calculadora.getTiempoTotal()+" minutos");

}

}

package com.aluracursos.screenmatch.calculos; import com.aluracursos.screenmatch.modelos.Pelicula; import com.aluracursos.screenmatch.modelos.Serie; 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();
}

}