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:Utilizando interfaces

--------Clasificacion.java------------

package com.aluracursos.screenmatch.calculos;

public interface Clasificacion {
int getClasificacion();
}

--------Película.java--------------------------------

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

-------Episodio.java---------------------------
public class Episodio implements Clasificacion {

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

-----------FiltroRecomendacion.java--------------

package com.aluracursos.screenmatch.calculos;

public class FiltroRecomendacion {
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("Popular en el momento");
}else {
System.out.println("Colócalo en tu lista para verlo después");
}
}
};

--------Principal.java------------------------

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

    filtroRecomendacion.filtra(episodio);
1 respuesta

Hola Andrés,

Parece que estás trabajando en un proyecto que utiliza interfaces para clasificar episodios y películas. Vamos a analizar lo que tienes y ver cómo podemos asegurarnos de que todo funcione correctamente.

  1. Interfaz Clasificacion: Has definido una interfaz que obliga a las clases que la implementan a tener un método getClasificacion(). Esto es correcto y te permite tener un contrato claro de lo que se espera de cada clase que implemente esta interfaz.

  2. Implementación en Episodio: En la clase Episodio, has implementado el método getClasificacion(), que devuelve 4 si el número de visualizaciones es mayor que 100, y 2 en caso contrario. Esto parece estar bien, pero asegúrate de que la variable totalVisualizaciones esté correctamente inicializada y accesible dentro de este método.

  3. Uso de FiltroRecomendacion: En la clase FiltroRecomendacion, estás utilizando el método filtra para imprimir un mensaje basado en la clasificación. Esto debería funcionar correctamente siempre que las implementaciones de getClasificacion() en las clases que pasas al filtro devuelvan los valores esperados.

  4. Configuración en Principal: En tu clase principal, asegúrate de que estás configurando correctamente las propiedades del episodio, especialmente totalVisualizaciones, antes de llamar al método filtra. Según el código que proporcionaste, parece que totalVisualizaciones se establece en 50, lo que debería resultar en el mensaje "Popular en el momento".

Un ejemplo práctico para verificar que todo funciona correctamente sería ejecutar el programa y observar si el mensaje impreso coincide con el número de visualizaciones que has configurado. Si no ves el mensaje esperado, revisa que totalVisualizaciones esté correctamente inicializado y que el método getClasificacion() esté funcionando como esperas.

Espero que esto te ayude a avanzar con tu proyecto. ¡Espero haber ayudado y buenos estudios!