Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Haga lo que hicimos en aula: encapsulando el proyecto

Aquí mi aporte.

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 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: "+ duracionEnMinutos);
}

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

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

} ///////////////////////////////////////////////////////////////////////////////////////////// Principal

import com.aluracursos.screenmatch.modelos.Pelicula;

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);
    miPelicula.evalua(9);
    miPelicula.evalua(8);
    System.out.println("Total de evaluaciones: " + miPelicula.getTotalDelasEvaluaciones());
    System.out.println("La media de la pelicula es: " + miPelicula.calculaMedia());

// com.aluracursos.screenmatch.modelos.Pelicula otraPelicula = new com.aluracursos.screenmatch.modelos.Pelicula(); // otraPelicula.nombre = "Matrix"; // otraPelicula.fechaDeLanzamiento = 1999; // otraPelicula.duracionEnMinutos = 180; // otraPelicula.muestraFichaTecnica();

}

}

1 respuesta
solución!

¡Hola Estudiante, espero que estés bien!

Entiendo que estás buscando ayuda para aplicar el concepto de encapsulamiento en tu proyecto de Java. Parece que ya has encapsulado los atributos de la clase Película al declararlos como privados y proporcionar métodos para acceder a ellos.

Sin embargo, veo que todavía hay un acceso directo a los atributos en el método main de la clase Principal, donde se accede a los atributos directamente en lugar de utilizar los métodos de acceso.

Para aplicar completamente el encapsulamiento, debes asegurarte de que todos los accesos a los atributos se realicen a través de los métodos de acceso proporcionados.

Por ejemplo, en el método main de la clase Principal, en lugar de acceder a los atributos directamente como miPelicula.setNombre("Encanto"), deberías usar los métodos de acceso como miPelicula.setNombre("Encanto").

Además, parece que hay un comentario que muestra un intento de acceder a los atributos directamente, lo cual no es recomendable si estás aplicando encapsulamiento.

Espero que esta información te ayude a aplicar el encapsulamiento de manera efectiva en tu proyecto. Si tienes alguna otra pregunta o necesitas más aclaraciones, no dudes en preguntar.

Espero haber ayudado y buenos estudios!