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

[Proyecto] 11 Haga lo que hicimos en aula: encapsulando el proyecto

Clase - Pelicula

package com.aluracursos.screenmatch.modelos;

public class Pelicula {
    private String nombre;
    private int fechaDelanzamiento;
    private int duracionEnMinutos;
    private boolean incluidoEnElPlan;
    private double sumaLasEvaluaciones;
    private int totalDeLasEvaluaciones;

    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 void setSumaLasEvaluaciones(double sumaLasEvaluaciones) {
        this.sumaLasEvaluaciones = sumaLasEvaluaciones;
    }

    public void setTotalDeLasEvaluaciones(int totalDeLasEvaluaciones) {
        this.totalDeLasEvaluaciones = totalDeLasEvaluaciones;
    }

    public String getNombre() {
        return nombre;
    }

    public int getFechaDelanzamiento() {
        return fechaDelanzamiento;
    }

    public int getDuracionEnMinutos() {
        return duracionEnMinutos;
    }

    public boolean isIncluidoEnElPlan() {
        return incluidoEnElPlan;
    }

    public double getSumaLasEvaluaciones() {
        return sumaLasEvaluaciones;
    }

    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("La duración de la pelicula es: " + duracionEnMinutos + " mins.");
    }

    public void evalua(double nota){
        sumaLasEvaluaciones += nota;
        totalDeLasEvaluaciones++;
    }

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

Clase - Principal

import com.aluracursos.screenmatch.modelos.Pelicula;

public class Principal {
    public static void main(String[] args) {
        Pelicula miPelicula = new Pelicula();
        miPelicula.setNombre("Mufasa");
        miPelicula.setFechaDelanzamiento(2025);
        miPelicula.setDuracionEnMinutos(120);
        miPelicula.setIncluidoEnElPlan(true);

        miPelicula.muestraFichaTecnica();
        miPelicula.evalua(8);
        miPelicula.evalua(10);
        miPelicula.evalua(9);
        miPelicula.evalua(6);

        System.out.println("Promedio de las Evaluaciones " + miPelicula.calculaMedia());

    }
}

Ejecutando el código

Ejecutando el código

1 respuesta

¡Hola Michael, espero que estés bien!

Tu código parece estar funcionando correctamente. Has encapsulado bien los atributos de la clase Pelicula y los métodos para manipular esos atributos. Además, el cálculo del promedio de las evaluaciones parece estar correcto, ya que el resultado es 8.25, que es el promedio esperado de las notas 8, 10, 9 y 6.

Si estás buscando mejorar o modificar algo, aquí hay algunas sugerencias:

  1. Validación de Datos: Podrías agregar validaciones en los métodos set para asegurarte de que los datos sean válidos. Por ejemplo, verificar que fechaDelanzamiento sea una fecha razonable o que duracionEnMinutos sea positiva.

  2. Uso de Constructores: Podrías crear un constructor para inicializar los atributos necesarios al crear una instancia de Pelicula.

    public Pelicula(String nombre, int fechaDelanzamiento, int duracionEnMinutos, boolean incluidoEnElPlan) {
        this.nombre = nombre;
        this.fechaDelanzamiento = fechaDelanzamiento;
        this.duracionEnMinutos = duracionEnMinutos;
        this.incluidoEnElPlan = incluidoEnElPlan;
    }
    
  3. Comentarios: Agregar comentarios en el código puede ayudar a otros (o a ti mismo en el futuro) a entender mejor lo que hace cada parte del código.

Espero que estas sugerencias te sean útiles. ¡Buenos estudios!