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

Practicas crear Clases

package com.aluracursos.screenmatch.calculos;
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.getDuracion();
}

}

3 respuestas

package com.aluracursos.screenmatch.modelos;

public class Titulo {
private String nombre;
private int fechaLanzamiento;
private int duracion;
private boolean incluidoEnElPlan;
private double sumaEvaluaciones;
private int totalEvaluaciones;

public String getNombre() {
    return nombre;
}

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

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

public int getDuracion() {
    return duracion;
}

public void setDuracion(int duracion) {
    this.duracion = duracion;
}

public boolean isIncluidoEnElPlan() {
    return incluidoEnElPlan;
}

public void setIncluidoEnElPlan(boolean incluidoEnElPlan) {
    this.incluidoEnElPlan = incluidoEnElPlan;
}

double getSumaEvaluaciones(){

    return sumaEvaluaciones;
}

int getFechaLanzamiento() {

    return totalEvaluaciones;
}

public void muestraFichaTecnica() {
    System.out.println(" El Tutulo es: " + getNombre());
    System.out.println(" La Fecha de Lanzamiento: " + getFechaLanzamiento());
    System.out.println(" Duracion en minutos es: " + getDuracion());
    System.out.println("Incliudo en el plan: " +incluidoEnElPlan);
    System.out.println(" La evalución del Título es: " +calcularMedia());
}

public void evaluar(double nota){
    sumaEvaluaciones += nota;
    totalEvaluaciones++;

}

public double calcularMedia(){

    return sumaEvaluaciones/totalEvaluaciones;
}

}

package com.aluracursos.screenmatch.modelos;

public class Serie extends Titulo{
int temporadas;
int episodiosPorTemporada;
int minutosPorEpiosodio;

@Override
public int getDuracion() {
    return temporadas*episodiosPorTemporada*minutosPorEpiosodio;
}

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 getMinutosPorEpiosodio() {
    return minutosPorEpiosodio;
}

public void setMinutosPorEpiosodio(int minutosPorEpiosodio) {
    this.minutosPorEpiosodio = minutosPorEpiosodio;
}

}

¡Hola Liliana, espero que estés bien!

Veo que estás trabajando en una clase llamada CalculadoraDeTiempo y quieres aplicar polimorfismo con herencia. Para ayudarte, te daré un ejemplo de cómo podrías estructurar tus clases Titulo, Serie y cómo podrías aplicar el polimorfismo en tu código.

Primero, asegúrate de tener una clase base llamada Titulo. Esta clase podría tener un método como getDuracion() que devuelva la duración de un título, que puede ser una película o una serie.

package com.aluracursos.screenmatch.modelos;

public class Titulo {
    private int duracion;

    public Titulo(int duracion) {
        this.duracion = duracion;
    }

    public int getDuracion() {
        return duracion;
    }
}

Luego, puedes crear una clase Serie que herede de Titulo. Aquí es donde entra la herencia. Si una serie tiene episodios, podrías calcular la duración total sumando la duración de cada episodio.

package com.aluracursos.screenmatch.modelos;

public class Serie extends Titulo {
    private int numeroDeEpisodios;
    private int duracionPorEpisodio;

    public Serie(int numeroDeEpisodios, int duracionPorEpisodio) {
        super(numeroDeEpisodios * duracionPorEpisodio);
        this.numeroDeEpisodios = numeroDeEpisodios;
        this.duracionPorEpisodio = duracionPorEpisodio;
    }

    @Override
    public int getDuracion() {
        return numeroDeEpisodios * duracionPorEpisodio;
    }
}

Finalmente, en tu clase CalculadoraDeTiempo, puedes usar el método incluye() para sumar la duración de cualquier Titulo, ya sea una película o una serie, gracias al polimorfismo.

package com.aluracursos.screenmatch.calculos;
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.getDuracion();
    }
}

Con este enfoque, puedes agregar tanto instancias de Titulo como de Serie a la CalculadoraDeTiempo, y el método incluye() se encargará de sumar la duración correcta gracias al polimorfismo.

Espero que este ejemplo te ayude a aplicar herencia y polimorfismo en tu proyecto. ¡Bons estudios!