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

Clasificable.java

package com.aluracursos.screenmatch.calculos;

public interface Clasificable {
    int getClasificacion();
}

FiltroRecomendacion.java

package com.aluracursos.screenmatch.calculos;

public class FiltroRecomendacion {

    public void filtra(Clasificable 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");
        }
    }
}

Pelicula.java

package com.aluracursos.screenmatch.modelos;

import com.aluracursos.screenmatch.calculos.Clasificable;

public class Pelicula extends Titulo implements Clasificable {

    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.Clasificable;

public class Episodio implements Clasificable {

    private int numero;
    private String titulo;
    private Serie serie;
    private int totalVisualizaciones;

    public int getNumero() {
        return numero;
    }

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

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public Serie getSerie() {
        return serie;
    }

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

    public int getTotalVisualizaciones() {
        return totalVisualizaciones;
    }

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

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

Clase Principal

import com.aluracursos.screenmatch.calculos.FiltroRecomendacion;
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.evalua(10);
        miPelicula.evalua(8);
        miPelicula.evalua(7);

        Serie casaDragon = new Serie();
        casaDragon.setNombre("La casa del dragón");
        casaDragon.setFechaDeLanzamiento(2022);
        casaDragon.setTemporadas(1);
        casaDragon.setEpisodiosPorTemporada(10);
        casaDragon.setMinutosPorEpisodio(50);

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

        FiltroRecomendacion filtroRecomendacion = new FiltroRecomendacion();

        filtroRecomendacion.filtra(miPelicula);
        filtroRecomendacion.filtra(episodio);
    }
}
1 respuesta

Hola, ¡espero que estés teniendo un buen día!

Parece que tu código está bastante bien estructurado y sigue las instrucciones del ejercicio. Has implementado la interfaz Clasificable tanto en la clase Pelicula como en la clase Episodio, y has creado la clase FiltroRecomendacion para filtrar las clasificaciones. Todo esto está en línea con lo que se solicitó en la actividad.

Aquí hay algunas cosas que podrías revisar o considerar:

  1. Verifica los métodos de evaluación en Pelicula: Asegúrate de que el método calculaMedia() esté correctamente implementado en la clase Titulo o en la clase Pelicula, ya que getClasificacion() depende de él para calcular la clasificación.

  2. Consistencia en los nombres de métodos y variables: En el código proporcionado, asegúrate de que los nombres de los métodos y variables sean consistentes y que correspondan a lo que esperas. Por ejemplo, en Episodio, te refieres a setNombre en lugar de setTitulo, lo cual podría ser un error tipográfico.

  3. Prueba el código: Ejecútalo para ver si los mensajes de recomendación se imprimen correctamente según las clasificaciones. Esto te ayudará a confirmar que la lógica de clasificación y filtrado está funcionando como esperas.

  4. Revisión de paquetes: Asegúrate de que todos los archivos estén en los paquetes correctos (com.aluracursos.screenmatch.calculos y com.aluracursos.screenmatch.modelos), ya que los errores de paquete pueden causar problemas al compilar o ejecutar el programa.

Si todo lo anterior está en orden, tu implementación debería estar funcionando correctamente. Espero que esto te haya sido útil y que puedas avanzar con éxito en tu aprendizaje de Java y la orientación a objetos.

¡Espero haber ayudado y buenos estudios!