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: encapsulamiento

Clase Película:

package com.aluracursos.screenmatch.modelos;

public class Pelicula {
private String nombre;
private int fechaDeLanzamiento;
private int duracionEnMinutos;
private boolean incluidoEnElPlan;
private double sumaDeEvaluaciones;
private int totalEvaluaciones;

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

//---FIN SETTERS-------------------------

public int getTotalEvaluaciones(){
    return totalEvaluaciones;
}

public void muestraFichaTecnica(){
    System.out.println("Mi Pelicula es: " + nombre);
    System.out.println("Y fue lanzada el " + fechaDeLanzamiento);
    System.out.println("Duración en minutos: " + duracionEnMinutos);
}

public void evalua(double nota){
    sumaDeEvaluaciones += nota;
    totalEvaluaciones++;
}

public double calculaPromedio(){
    return sumaDeEvaluaciones/totalEvaluaciones;
}

}

Clase Principal:

import com.aluracursos.screenmatch.modelos.Pelicula;

public class Principal {
static void main() {
Pelicula miPelicula = new Pelicula();
miPelicula.setNombre("Encanto");
miPelicula.setFechaDeLanzamiento(2021);
miPelicula.setDuracionEnMinutos(120);
miPelicula.setIncluidoEnElPlan(true);

    miPelicula.muestraFichaTecnica();
    miPelicula.evalua(10.0);
    miPelicula.evalua(10.0);
    miPelicula.evalua(7.8);
    System.out.println(miPelicula.getTotalEvaluaciones());
    System.out.println(miPelicula.calculaPromedio());
}

}

1 respuesta

Hola Andrés, espero que estés bien

Parece que estás trabajando en una clase Pelicula en Java, y estás aplicando el concepto de encapsulamiento al utilizar métodos set para asignar valores a los atributos privados de la clase. Todo se ve bastante bien estructurado. Sin embargo, hay un pequeño detalle en tu clase principal que podría causar problemas al ejecutar el programa.

En la clase Principal, el método main debe tener la siguiente firma para que el programa se ejecute correctamente:

public static void main(String[] args) {

Actualmente, tienes definido static void main(), lo cual no es la firma correcta para el método principal en Java. Asegúrate de corregirlo para que tu programa pueda ejecutarse sin problemas.

Además, me parece que ya estás utilizando correctamente los métodos para evaluar la película y calcular el promedio de las evaluaciones. Aquí tienes un ejemplo de cómo se vería el código corregido:

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.0);
        miPelicula.evalua(10.0);
        miPelicula.evalua(7.8);
        System.out.println(miPelicula.getTotalEvaluaciones());
        System.out.println(miPelicula.calculaPromedio());
    }
}

Espero que esta corrección te ayude a ejecutar tu programa sin problemas. ¡Sigue adelante con tu aprendizaje en Java!

Espero haber ayudado y buenos estudios!