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: encapsulando el proyecto

Pelicula.java

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

    public String getNombre() {
        return nombre;
    }

    public int getFechaDeLanzamiento() {
        return fechaDeLanzamiento;
    }

    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }

    public boolean isIncluidoEnElPlan() {
        return incluidoEnElPlan;
    }

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

    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 película es: " + nombre);
        System.out.println("Su fecha de lanzamiento es: " + fechaDeLanzamiento);
        System.out.println("Duración en minutos: "+ getDuracionEnMinutos());
    }

    public void evalua(double nota){
        sumaDeLasEvaluaciones += nota;
        totalDelasEvaluaciones++;
    }

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

Principal.java

public class Principal {
    public static void main(String[] args) {
        Pelicula miPelicula = new Pelicula();
        miPelicula.setNombre("La familia del futuro");
        miPelicula.setFechaDeLanzamiento(2007);
        miPelicula.setDuracionEnMinutos(95);
        miPelicula.setIncluidoEnElPlan(true);

       miPelicula.muestraFichaTecnica();
        miPelicula.evalua(10);
        miPelicula.evalua(10);
        miPelicula.evalua(7.8);
       System.out.println("Média de evaluaciones de la película: " +miPelicula.calculaMedia());
}
}
1 respuesta

¡Hola Mario, espero que estés bien!

Parece que estás trabajando en un ejercicio sobre encapsulamiento en Java. Por lo que puedo ver, ya has implementado correctamente el encapsulamiento en la clase Pelicula al hacer que sus atributos sean privados y proporcionar métodos públicos get y set para acceder y modificar esos atributos. Esto es una práctica común en la programación orientada a objetos para proteger los datos y asegurar que se accede a ellos de manera controlada.

Tu código parece estar bien estructurado. Aquí tienes algunos puntos que podrías considerar para mejorar o verificar:

  1. Verificación de valores: Al establecer valores para los atributos, podrías agregar validaciones para asegurarte de que los datos sean válidos. Por ejemplo, podrías verificar que la fechaDeLanzamiento sea un año razonable o que duracionEnMinutos sea un número positivo.

  2. Métodos adicionales: Si deseas expandir la funcionalidad, podrías agregar más métodos que interactúen con los atributos de la clase Pelicula. Por ejemplo, un método que formatee la duración de la película en horas y minutos.

  3. Comentarios y documentación: Asegúrate de documentar tu código con comentarios, especialmente si planeas compartirlo con otros o si es parte de un proyecto más grande. Esto ayuda a otros (y a ti mismo en el futuro) a entender rápidamente lo que hace cada parte del código.

  4. Pruebas: Considera escribir pruebas para verificar que los métodos de tu clase Pelicula funcionan como esperas. Esto es especialmente útil para métodos como calculaMedia, donde los cálculos podrían ser propensos a errores.

Espero que estos consejos te sean útiles y te ayuden a avanzar en tu proyecto. ¡Bons estudios!