Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

07 Haga lo que hicimos en aula: utilizando interfaces

INTERFACE

package com.oasb.Screem_Macht.CaculosAplicacion;

public interface CLASIFICACION {

    int getCLASIFICACION(); // SE IMPLEMENTA SOLO UN UNICO METODO(FUNCION) CON LA FUNCION GET,
                            // PARA OBTENER VALORES, ESTE CASO UNA CLASIFICACION
                            
                            

package com.oasb.Screen_Macht.modelosAplicacion;
import com.oasb.Screem_Macht.CaculosAplicacion.CLASIFICACION;

public class PELICULA extends TITULO implements CLASIFICACION { // HERENCIA USANDO LA PALABRA RESERVADA extends
                                                                // SE ADICIONA LA INTERFASE CLASIFICACION
                                                                // LA INTERFAZ SE IMPLEMENTA PARA PODER USAR CIERTO TIPO DE
                                                                // RECURSOS A LAS DISTINTAS CLASES DENTRO DE LA AOLICACION


@Override       // SE IMPLEMENTA O MANDA A LLMAR EL METODO QUE PROVIENE DE LA INTERFASE PARA SER UTILIZADA EN ESTA CLASE
public int getCLASIFICACION( ){
    return (int) (calularLaMedia( )/2);   //como ya existe un metodo(funcion) que calcula la media, se manda a llamar pero recordando
    // que el valor de esta media es de tipo flotante por lo tanto se tiene que
    // convertir de un tipo de dato flotante(decimal) a valor entero
    //para poder asi clasificar con entrellas, ya que estas se requieren en valores enteros
}

CLASE PELICULA

    //SECCION DE ATRUBUTOS (variables)
   private String director;


   // SECCION DE getters y setters

    public String getDirector() {
        return director;
    }

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

}

CLASE EPISODIO

    package com.oasb.Screen_Macht.modelosAplicacion;
import com.oasb.Screem_Macht.CaculosAplicacion.CLASIFICACION;



public class EPISODIO implements CLASIFICACION{     // HERENCIA USANDO LA PALABRA RESERVADA extends
                                                    // SE IMPLEMENTA LA INTERFASE CLASIFICACION
                                                    // LA INTERFAZ SE IMPLEMENTA PARA PODER USAR CIERTO TIPO DE
                                                    // RECURSOS A LAS DISTINTAS CLASES DENTRO DE LA AOLICACION

    @Override                            // SE IMPLEMENTA O MANDA A LLAMAR EL METODO QUE PROVIENE DE LA INTERFASE PARA SER UTILIZADA EN ESTA CLASE
    public int getCLASIFICACION() {     //como ya existe un metodo(funcion) que calcula la media, se manda a llamar pero recordando
        // que el valor de esta media es de tipo flotante por lo tanto se tiene que
        // convertir de un tipo de dato flotante(decimal) a valor entero
        //para poder asi clasificar con entrellas, ya que estas se requieren en valores enteros

        if(visualizaciones > 100) {   //este el el filtro, si se revasa las 100 visualizaciones
            return 4;      //  4  estrellas y representa una evaliaciion excelete o buena
        } else {
            return 2;  // si es 2 o menos estrellas, la recomendacion es guardarla para ver el contenido mas tarde
        }
    }


        // variables
    private int numeroEpisodio;
    private String nombreEpisodio;

    private SERIE serie;  //SE LLAMA A LA CLASE SERIE con un nombre serie para correlacionar
    private int visualizaciones;   // SE AGREGO

// get and set

    public int getNumeroEpisodio() {
        return numeroEpisodio;
    }

    public void setNumeroEpisodio(int numeroEpisodio) {
        this.numeroEpisodio = numeroEpisodio;
    }

    public String getNombreEpisodio() {
        return nombreEpisodio;
    }

    public void setNombreEpisodio(String nombreEpisodio) {
        this.nombreEpisodio = nombreEpisodio;
    }

    public SERIE getSerie() {
        return serie;
    }

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

    public int getVisualizaciones() {
        return visualizaciones;
    }

    public void setVisualizaciones(int visualizaciones) {
        this.visualizaciones = visualizaciones;
    }

}

CLASE FILTRO

package com.oasb.Screem_Macht.CaculosAplicacion;
//clase creada para poder filtrar el contenido de forma general, va de la mano con la clase CLASIFICACION
public class FILTRO_RECOMENDACION {

    public void filtra ( CLASIFICACION clasificacion ){

            if (clasificacion.getCLASIFICACION() >= 4){
                System.out.printf("EXCELENTE PELICULA");

            } else if (clasificacion.getCLASIFICACION() <= 2 ) {
                System.out.printf("PELUCULAS PALOMERA");

            } else {
                System.out.printf("PARA VER MAS TARDE");
            }

    }

}

SE REALIZA PRUEBAS EN CLASE PRINCIPAL

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

1 respuesta

¡Hola Estudiante, espero que estés bien!

Parece que estás implementando interfaces en Java para clasificar películas y episodios. Aquí tienes algunos puntos importantes sobre tu código:

  1. Interfaz CLASIFICACION:

    • Define un método getCLASIFICACION() que debe ser implementado por cualquier clase que implemente esta interfaz.
  2. Clase PELICULA:

    • Implementa la interfaz CLASIFICACION y proporciona una implementación para el método getCLASIFICACION(), que utiliza un cálculo de media para determinar la clasificación.
  3. Clase EPISODIO:

    • También implementa la interfaz CLASIFICACION. En este caso, la clasificación se basa en el número de visualizaciones.
  4. Clase FILTRO_RECOMENDACION:

    • Usa el método filtra para imprimir mensajes basados en la clasificación obtenida de las instancias de CLASIFICACION.
  5. Clase Principal:

    • Crea instancias de PELICULA y EPISODIO, y utiliza FILTRO_RECOMENDACION para filtrar y mostrar las clasificaciones.

Si tienes algún problema específico o algo no funciona como esperas, revisa que todas las clases implementen correctamente los métodos requeridos por la interfaz y que las instancias se inicialicen adecuadamente antes de usarlas.

Espero que esto te ayude a entender mejor cómo aplicar interfaces en tu proyecto. ¡Bons estudos!