Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Haga lo que hicimos en aula: utilizando interfaces

Clasificacion.java

package com.aluracursos.screenmatch.calculos;

public interface Clasificacion {
    int getClasificacion();
}

Pelicula.java

package com.aluracursos.screenmatch.modelos;

import com.aluracursos.screenmatch.calculos.Clasificacion;

public class Pelicula extends Titulo implements Clasificacion {
    private String director;

    public String getDirector() {
        return director;
    }

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

    @Override
    public int getClasificacion() {
        return (int) calculaMedia() / 2;
    }
}

Episodio.java

package com.aluracursos.screenmatch.modelos;

import com.aluracursos.screenmatch.calculos.Clasificacion;

public class Episodio implements Clasificacion {

    private  int numero;

    private String nombre;

    private Serie serie;

    public int getTotalVisualizaciones() {
        return totalVisualizaciones;
    }

    public void setTotalVisualizaciones(int totalVisualizaciones) {
        this.totalVisualizaciones = totalVisualizaciones;
    }

    private int totalVisualizaciones;

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public String getNombre() {
        return nombre;
    }

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

    public Serie getSerie() {
        return serie;
    }

    public void setSerie(Serie serie) {
        this.serie = serie;
    }

    @Override
    public int getClasificacion() {
        if (totalVisualizaciones > 100){
            return 4;
        } else {
            return 2;
        }
    }
}

Filtrorecomendaciones.java

package com.aluracursos.screenmatch.calculos;

public class FiltroRecomendaciones {

    public void filtra(Clasificacion clasificacion){
        if (clasificacion.getClasificacion() >= 4){
            System.out.println("Muy bien evaluado en el momento");
        }else if (clasificacion.getClasificacion() >= 2){
            System.out.println("Muy popular en el momento");
        }else {
            System.out.println("Colocalo en la lista para verlo despues");
        }
    }
}

Principal.java

import com.aluracursos.screenmatch.calculos.CalculadoraDeTiempo;
import com.aluracursos.screenmatch.calculos.FiltroRecomendaciones;
import com.aluracursos.screenmatch.modelos.Episodio;
import com.aluracursos.screenmatch.modelos.Pelicula;
import com.aluracursos.screenmatch.modelos.Serie;

public class Principal {
    public static void main(String[] args) {
        Pelicula miPelicula = new Pelicula();
        miPelicula.setNombre("Encanto");
        miPelicula.setFechaDeLanzamiento(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.setNombre("La casa del Dragón");
        casaDragon.setFechaDeLanzamiento(2022);
        casaDragon.setTemporadas(1);
        casaDragon.setMinutosPorEpisodios(50);
        casaDragon.setEpisodiosPorTemporada(10);
        casaDragon.muestraFichaTecnica();
        System.out.println(casaDragon.getDuracionEnMinutos());

        Pelicula otraPelicula = new Pelicula();
        otraPelicula.setNombre("Matrix");
        otraPelicula.setFechaDeLanzamiento(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ítutlos favoritos estas vacaciones " + calculadora.getTiempoTotal() + " minutos");

        FiltroRecomendaciones filtroRecomendaciones = new FiltroRecomendaciones();
        filtroRecomendaciones.filtra(miPelicula);

        Episodio episodio = new Episodio();
        episodio.setNumero(1);
        episodio.setNombre("La casa Targeryan");
        episodio.setSerie(casaDragon);
        episodio.setTotalVisualizaciones(50);

        filtroRecomendaciones.filtra(episodio);

    }
}
2 respuestas
solución!

Hola Sebastian, espero que estés bien

¡Espero que estés bien! Parece que estás trabajando en una actividad relacionada con el uso de interfaces en Java y has compartido tu implementación del ejercicio. Tu código parece estar bien encaminado, pero he notado que hay una pequeña diferencia entre el ejercicio y tu implementación.

En el ejercicio, se menciona que debes crear e implementar una interfaz llamada Clasificable, mientras que en tu código actual has implementado una interfaz llamada Clasificacion. Esto podría ser una fuente de confusión o error si el ejercicio requiere específicamente el uso de Clasificable.

Para corregir esto, puedes cambiar el nombre de la interfaz de Clasificacion a Clasificable en tu archivo Clasificacion.java y asegurarte de que todas las clases que implementan esta interfaz también reflejen este cambio. Aquí tienes un ejemplo de cómo podrías hacerlo:

  1. Cambia el nombre del archivo Clasificacion.java a Clasificable.java y actualiza el contenido:
package com.aluracursos.screenmatch.calculos;

public interface Clasificable {
    int getClasificacion();
}
  1. Asegúrate de que las clases Pelicula y Episodio implementen la interfaz Clasificable en lugar de Clasificacion:
public class Pelicula extends Titulo implements Clasificable {
    // ...
}

public class Episodio implements Clasificable {
    // ...
}
  1. Actualiza cualquier referencia a Clasificacion en tu código para que use Clasificable, incluyendo en la clase FiltroRecomendaciones.

Después de hacer estos cambios, tu implementación debería alinearse mejor con los requisitos del ejercicio. Espero que esto te ayude a avanzar con tu proyecto. ¡Buena suerte!

Espero haber ayudado y buenos estudios!

no me habia dado cuenta, lo modificare...