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

package com.entronomia.aplicaciones.modelos;

public class Titulo {
    private String nombre;
    private int fechaDeLanzamiento;
    private int duracionEnMinutos;
    private boolean incluidaEnElPlan;
    private double sumaDeLasEvaluaciones = 0;
    private int numeroDeEvaluaciones = 0;
    private double mediaDeLasEvaluaciones = 0;

    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }

    public boolean isIncluidaEnElPlan() {
        return incluidaEnElPlan;
    }

    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 setIncluidaEnElPlan(boolean incluidaEnElPlan) {
        this.incluidaEnElPlan = incluidaEnElPlan;
    }

    public double getMediaDeLasEvaluaciones() {
        return mediaDeLasEvaluaciones;
    }

    public void imprimeDatos() {
        System.out.println("Nombre de la película: " + getNombre());
        System.out.println("Fecha de lanzamiento: " + getFechaDeLanzamiento());
        System.out.println("Duración [min]: " + getDuracionEnMinutos());
    }

    public void evaluaPelicula(double nota) {
        sumaDeLasEvaluaciones = sumaDeLasEvaluaciones + nota;
        numeroDeEvaluaciones = numeroDeEvaluaciones +1;
    }

    public double calculaMediaDeLasEvaluaciones() {
        mediaDeLasEvaluaciones = sumaDeLasEvaluaciones / numeroDeEvaluaciones;
        return mediaDeLasEvaluaciones;
    }
}
package com.entronomia.aplicaciones.modelos;

public class Pelicula extends Titulo {
    private String director;

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }
}
package com.entronomia.aplicaciones.modelos;

public class Serie extends Titulo {
    private int temporadas;
    private int episodiosPorTemporada;
    private int minutosPorEpisodio;

    @Override
    public int getDuracionEnMinutos() {
        return temporadas * episodiosPorTemporada * minutosPorEpisodio;
    }

    public int getTemporadas() {
        return temporadas;
    }

    public int getEpisodiosPorTemporada() {
        return episodiosPorTemporada;
    }

    public int getMinutosPorEpisodio() {
        return minutosPorEpisodio;
    }

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

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

    public void setMinutosPorEpisodio(int minutosPorEpisodio) {
        this.minutosPorEpisodio = minutosPorEpisodio;
    }
}
package com.entronomia.aplicaciones.calculos;
import com.entronomia.aplicaciones.modelos.Titulo;

public class CalculadoraDeTiempo {
    private int tiempoEnMinutos = 0;

    public int getTiempoEnMinutos() {
        return tiempoEnMinutos;
    }

    public void tiempoAdicionado(Titulo titulo) {
        tiempoEnMinutos = tiempoEnMinutos + titulo.getDuracionEnMinutos();
    }
}
import com.entronomia.aplicaciones.modelos.Pelicula;
import com.entronomia.aplicaciones.modelos.Serie;
import com.entronomia.aplicaciones.calculos.CalculadoraDeTiempo;

public class Inventario {
    public static void main(String[] args) {
        Pelicula peliculaI = new Pelicula();
        peliculaI.setNombre("2012");
        peliculaI.setFechaDeLanzamiento(2009);
        peliculaI.setDuracionEnMinutos(158);
        peliculaI.setIncluidaEnElPlan(true);
        peliculaI.evaluaPelicula(8.4);
        peliculaI.evaluaPelicula(9.0);
        peliculaI.calculaMediaDeLasEvaluaciones();
        peliculaI.imprimeDatos();

        Serie serieI = new Serie();
        serieI.setNombre("La reina de Indias y el conquistador");
        serieI.setFechaDeLanzamiento(2020);
        serieI.setTemporadas(1);
        serieI.setEpisodiosPorTemporada(60);
        serieI.setMinutosPorEpisodio(50);
        serieI.imprimeDatos();

        CalculadoraDeTiempo calculadoraDeTiempo = new CalculadoraDeTiempo();
        calculadoraDeTiempo.tiempoAdicionado(peliculaI);
        calculadoraDeTiempo.tiempoAdicionado(serieI);
        System.out.println("El tiempo para ver todas estas peliculas y series es " + calculadoraDeTiempo.getTiempoEnMinutos() + " minutos");
    }
}
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!