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

Encapsulando el proyecto

Hola buenos dias! aca les dejo mi codigo encapsulando el proyecto. Pelicula.java:

package com.aluracursos.screenmatch.modelos;

public class Pelicula {
    private String nombre;
    private int fechaDeLanzamiento;
    private int duracionEnMinutos;
    private boolean incluidoEnElPlan;
    private double sumaDeLasEvaluaciones;
    private int totalDeLasEvaluaciones;

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

    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }

    public boolean isIncluidoEnElPlan() {
        return incluidoEnElPlan;
    }

    public void setFechaDeLanzamiento(int fechaDeLanzamiento) {
        this.fechaDeLanzamiento = fechaDeLanzamiento;
    }

    public void setDuracionEnMinutos(int duracionEnMinutos) {
        this.duracionEnMinutos = duracionEnMinutos;
    }

    public void setIncluidoEnElPlan(boolean incluidoEnElPlan) {
        this.incluidoEnElPlan = incluidoEnElPlan;
    }

    public int getTotalDeLasEvaluaciones(){
        return totalDeLasEvaluaciones;
    }

    public void muestraFichaTecnica(){
        System.out.println("El nombre de la pelicula es: " + nombre);
        System.out.println("Fecha de Lanzamiento: " + fechaDeLanzamiento);
        System.out.println("Duración en minutos: " + duracionEnMinutos);
    }
    public void evalua(double nota){
        sumaDeLasEvaluaciones += nota;
        totalDeLasEvaluaciones++;
    }

    public double calculaMedia(){
        return sumaDeLasEvaluaciones / totalDeLasEvaluaciones;
    }
}

Principal.java:

import com.aluracursos.screenmatch.modelos.Pelicula;

public class Principal {
    public static void main(String[] args) {
        Pelicula miPelicula = new Pelicula();
        miPelicula.setNombre("Matrix");
        miPelicula.setFechaDeLanzamiento(1998);
        miPelicula.setDuracionEnMinutos(180);
        miPelicula.setIncluidoEnElPlan(true);

        miPelicula.muestraFichaTecnica();
        miPelicula.evalua(7.8);
        miPelicula.evalua(10);
        System.out.println(miPelicula.getTotalDeLasEvaluaciones());
        System.out.println(miPelicula.calculaMedia());




        //com.aluracursos.screenmatch.modelos.Pelicula otraPelicula = new com.aluracursos.screenmatch.modelos.Pelicula();
        //otraPelicula.nombre = "Encanto";
        //otraPelicula.fechaDeLanzamiento = 2021;
       // otraPelicula.duracionEnMinutos = 120;

        // otraPelicula.muestraFichaTecnica();
    }
}
1 respuesta

¡Hola Noe, espero que estés bien!

Espero que estés teniendo un buen día. He revisado tu código y parece que has hecho un buen trabajo aplicando el encapsulamiento en tu clase Pelicula. Has protegido los atributos de la clase haciéndolos privados y has proporcionado métodos públicos para acceder y modificar estos atributos, lo cual es una práctica esencial en la programación orientada a objetos.

Un aspecto importante del encapsulamiento es asegurar que los métodos de acceso (getters y setters) manejen adecuadamente los datos. Por ejemplo, si quisieras añadir validaciones al establecer la duración de la película, podrías modificar el método setDuracionEnMinutos para asegurarte de que no se introduzcan valores negativos.

Además, veo que has implementado métodos para evaluar la película y calcular la media de las evaluaciones. Esto es excelente para mantener la lógica relacionada con las evaluaciones dentro de la clase Pelicula.

Tu clase Principal también parece estar funcionando correctamente al crear una instancia de Pelicula y utilizar sus métodos. Si deseas seguir mejorando, podrías considerar manejar posibles excepciones o errores que puedan surgir durante la ejecución, como dividir por cero en el método calculaMedia.

Espero que estas sugerencias te sean de utilidad y te ayuden a seguir mejorando tu proyecto. ¡Bons estudios!