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[mi intento]

Principal.java

import com.aluracursos.screenmacth.calculos.CalculadoraDeTiempo;
import com.aluracursos.screenmacth.calculos.FiltrosRecomendacion;
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.setMinutosPorEpisodio(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ítulos favoritos estas vacaciones "
                + calculadora.getTiempoTotal() + " minutos");

FiltrosRecomendacion filtrosRecomendacion = new FiltrosRecomendacion();
filtrosRecomendacion.filtra(miPelicula);

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


    }
}

episodio.java

package com.aluracursos.screenmatch.modelos;

import com.aluracursos.screenmacth.calculos.Clasificacion;

public class Episodio implements Clasificacion {

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

    public int getTotalVisualizaciones() {
        return totalVisualizaciones;
    }

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

    public String getNombre() {
        return nombre;
    }

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

    public int getNumero() {
        return numero;
    }

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

    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;
        }
    }
}


Filtrosrecomendacion,java

package com.aluracursos.screenmacth.calculos;

public class FiltrosRecomendacion {

     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("Colocalo en tu lista para verlo despues");
        }
    }


}

Resultado final
Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola Ariel, espero que estés bien

Sugerencia: compartir tu proyecto en el canal #comparta-tu-codigo en el servidor ONE en Discord ;)

Parece que estás intentando implementar interfaces en tu proyecto Java y estás casi allí. Vamos a revisar los pasos que has seguido y asegurarnos de que todo esté en orden.

  1. Interfaz Clasificable: Asegúrate de que la interfaz Clasificable esté correctamente definida en el paquete com.aluracursos.screenmatch.calculos. Ya lo has hecho bien.

  2. Implementación en Pelicula y Episodio: Ambas clases deben implementar la interfaz Clasificable. En tu código, ya has implementado el método getClasificacion() en ambas clases, lo cual es correcto.

  3. Uso de FiltrosRecomendacion: Estás utilizando la clase FiltrosRecomendacion para filtrar objetos que implementan Clasificable. Esto también está bien implementado.

  4. Verificación de la Salida: Según la imagen que compartiste, parece que el programa está funcionando correctamente. El tiempo total calculado y los mensajes de evaluación se muestran como se espera.

Si todo está funcionando como esperas, ¡felicidades! Has implementado correctamente el uso de interfaces en tu proyecto. Si aún tienes alguna duda específica, no dudes en preguntar.

Espero haber ayudado y buenos estudios!