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

te muestro cómo aplicar el concepto de encapsulamiento a la clase Película para proteger sus atributos y mejorar la organización del código:

public class Pelicula { // Atributos encapsulados (privados) private String titulo; private String director; private int anioLanzamiento; private String genero;

// Constructor
public Pelicula(String titulo, String director, int anioLanzamiento, String genero) {
    this.titulo = titulo;
    this.director = director;
    this.anioLanzamiento = anioLanzamiento;
    this.genero = genero;
}

// Métodos de acceso (getters)
public String getTitulo() {
    return titulo;
}

public String getDirector() {
    return director;
}

public int getAnioLanzamiento() {
    return anioLanzamiento;
}

public String getGenero() {
    return genero;
}

// Métodos de modificación (setters) - Opcionales según tus necesidades
public void setTitulo(String titulo) {
    this.titulo = titulo;
}

public void setDirector(String director) {
    this.director = director;
}

public void setAnioLanzamiento(int anioLanzamiento) {
    this.anioLanzamiento = anioLanzamiento;
}

public void setGenero(String genero) {
    this.genero = genero;
}

// Otros métodos de la clase (si los hubiera)
public void mostrarDetalles() {
    System.out.println("Título: " + titulo);
    System.out.println("Director: " + director);
    System.out.println("Año de lanzamiento: " + anioLanzamiento);
    System.out.println("Género: " + genero);
}

}

Explicación:

Encapsulamiento de atributos: Los atributos titulo, director, anioLanzamiento y genero se declaran como private. Esto significa que solo pueden ser accedidos directamente desde dentro de la clase Pelicula.

Constructor: El constructor permite inicializar los atributos de la película al crear un nuevo objeto.

Métodos de acceso (getters): Los métodos getTitulo(), getDirector(), getAnioLanzamiento() y getGenero() permiten obtener los valores de los atributos de forma segura desde fuera de la clase.

Métodos de modificación (setters): Los métodos setTitulo(), setDirector(), setAnioLanzamiento() y setGenero() (opcionales) permiten modificar los valores de los atributos desde fuera de la clase, si es necesario. Puedes incluir lógica de validación dentro de estos métodos para asegurarte de que los datos asignados sean válidos.

Otros métodos: La clase puede tener otros métodos, como mostrarDetalles(), que utilizan los atributos encapsulados para realizar acciones específicas.

Ventajas del encapsulamiento:

Protección de datos: Los atributos están protegidos de modificaciones accidentales o no autorizadas desde fuera de la clase. Control de acceso: El acceso a los atributos se realiza a través de métodos (getters y setters), lo que permite controlar cómo se leen y modifican los datos. Flexibilidad: Puedes cambiar la implementación interna de la clase sin afectar el código que la utiliza, siempre y cuando mantengas los mismos métodos de acceso. Mantenimiento: El código se vuelve más fácil de mantener y depurar, ya que los cambios en los atributos se centralizan en los métodos de acceso. Ejemplo de uso:

public class Main { public static void main(String[] args) { Pelicula miPelicula = new Pelicula("Inception", "Christopher Nolan", 2010, "Ciencia ficción");

    // Acceder a los atributos usando los getters
    System.out.println("Título: " + miPelicula.getTitulo());
    System.out.println("Director: " + miPelicula.getDirector());

    // Modificar un atributo usando un setter (si está implementado)
    miPelicula.setGenero("Thriller psicológico");

    // Mostrar los detalles de la película
    miPelicula.mostrarDetalles(); 
}

}

1 respuesta

¡Hola! ¿Cómo estás?

Gracias por tu aporte en el foro. Su contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!