Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haga lo que hicimos en aula: aplicando polimorfismo con herencia

Main

import com.valentina.screenmatch.modelos.Peliculas;
import com.valentina.screenmatch.modelos.Serie;
import com.valentina.sreenmatch.calculos.CalculadoraDeTiempo;

public class Main {
    public static void main(String[] args) {
        Peliculas miPelicula = new Peliculas();
        miPelicula.setNombre("Encanto");
        miPelicula.setFechaDeLanzamiento(2021);
        miPelicula.setDuracionEnMinutos(120);
        miPelicula.setIncluidoEnPlan(true);
        miPelicula.muestraFichaTecnica();
        miPelicula.evalua(10);
        System.out.println(miPelicula.getTotalEvaluaciones());
        System.out.println(miPelicula.calculaMedia());

        com.valentina.screenmatch.modelos.Peliculas pelicula2 = new com.valentina.screenmatch.modelos.Peliculas();
        pelicula2.setNombre("Suzume");
        pelicula2.setFechaDeLanzamiento(2022);
        pelicula2.setDuracionEnMinutos(122);
        System.out.println("Nombre de la pelicula: " + pelicula2.getNombre());

        Serie serie1 = new Serie();
        serie1.setNombre("La casa del dragón");
        serie1.setFechaDeLanzamiento(2022);
        serie1.setTemporadas(1);
        serie1.setMinutosPorEpisodio(50);
        serie1.setEpisodiosPorTemporada(10);
        serie1.muestraFichaTecnica();
        System.out.println(serie1.getDuracionEnMinutos());

        CalculadoraDeTiempo calculadora = new CalculadoraDeTiempo();
        calculadora.incluye(miPelicula);
        calculadora.incluye(serie1);
        calculadora.incluye(pelicula2);
        System.out.println("Tiempo total: " + calculadora.getTiempoTotal());
    }
}

CalculadoraDeTiempo

package com.valentina.sreenmatch.calculos;
import com.valentina.screenmatch.modelos.Peliculas;
import com.valentina.screenmatch.modelos.Serie;
import com.valentina.screenmatch.modelos.Titulo;

public class CalculadoraDeTiempo {

    private int tiempoTotal;

    public int getTiempoTotal() {
        return tiempoTotal;
    }

    public void incluye(Titulo titulo){
        tiempoTotal += titulo.getDuracionEnMinutos();
    }
}

Titulo

package com.valentina.screenmatch.modelos;

public class Titulo {
    private String nombre;
    private int fechaDeLanzamiento;
    private int duracionEnMinutos;
    private boolean incluidoEnPlan;
    private double sumaDeLasEvaluaciones;
    private int totalEvaluaciones;
    public String getNombre() {
        return nombre;
    }
    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }
    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }
    public boolean isIncluidoEnPlan() {
        return incluidoEnPlan;
    }
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
    public void setIncluidoEnPlan(boolean incluidoEnPlan) {
        this.incluidoEnPlan = incluidoEnPlan;
    }
    public void setFechaDeLanzamiento(int fechaDeLanzamiento) {
        this.fechaDeLanzamiento = fechaDeLanzamiento;
    }
    public void setDuracionEnMinutos(int duracionEnMinutos) {
        this.duracionEnMinutos = duracionEnMinutos;
    }
    public int getTotalEvaluaciones(){
        return totalEvaluaciones;
    }
    public void muestraFichaTecnica(){
        System.out.println("Nombre de la pelicula: " + nombre);
        System.out.println("Fecha de Lanzamiento: " + fechaDeLanzamiento);
        System.out.println("Duracion en minutos:" + getDuracionEnMinutos());
    }
    public void evalua(double nota){
        sumaDeLasEvaluaciones += nota;
        totalEvaluaciones++;
    }
    public double calculaMedia(){
        return  sumaDeLasEvaluaciones/totalEvaluaciones;
    }
}

Peliculas

package com.valentina.screenmatch.modelos;

public class Peliculas extends Titulo {
    private String director;

    public String getDirector() {
        return director;
    }
    public void setDirector(String director) {
        this.director = director;
    }
}

Serie

package com.valentina.screenmatch.modelos;

public class Serie extends Titulo {
    int temporadas;
    int episodiosPorTemporada;
    int minutosPorEpisodio;
    @Override
    public int getDuracionEnMinutos() {
        return temporadas * episodiosPorTemporada * 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;
    }
}
1 respuesta

¡Hola! ¿Cómo estás?

Gracias por tu aporte en el foro. Su contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!