Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

[Duda] ¿Por qué encapsular los atributos de clase?

Buen día.

Entendí que el objetivo de encapsular es ocultar el acceso a los atributos de clase, evitando así la modificación directa.

Sin embargo me surge la pregunta: ¿Por qué encapsular? si tenemos igual un método get para obtener el valor del atributo y un método set que me permite modificar el valor del atributo. Aunque entendí que se puede modificar los valores de una manera controlada de esta manera, quisiera saber tu apreciación.

¡Gracias por atender mi duda!

2 respuestas

¡Hola Wilmar, espero que estés bien!

Encapsular los atributos de una clase es una práctica fundamental en la programación orientada a objetos. Aunque puede parecer que tener métodos get y set para acceder y modificar los valores de los atributos no ofrece mucha protección, la clave está en el control y la flexibilidad que te brinda.

Al encapsular, puedes controlar cómo se accede y modifica un atributo. Por ejemplo, puedes validar los datos antes de asignarlos a un atributo en el método set. Supongamos que tienes un atributo edad en una clase Persona. Podrías tener un método setEdad que verifique que la edad sea un número positivo antes de asignarlo:

public void setEdad(int edad) {
    if (edad > 0) {
        this.edad = edad;
    } else {
        System.out.println("La edad debe ser positiva");
    }
}

De esta manera, encapsular no solo protege los datos de modificaciones no deseadas, sino que también permite aplicar reglas de negocio y validaciones específicas antes de cambiar un valor. Además, si en el futuro decides cambiar la implementación interna de la clase, puedes hacerlo sin afectar el código que utiliza esos métodos get y set.

Espero que esta explicación te haya aclarado la importancia del encapsulamiento. ¡Bons estudios!

Hola Brenda, de nuevo muchas gracias por estar atenta al foro.

Me quedan claras la ventajas del encapsulamiento. ¡Muchas gracias!