Junior
¿En qué consiste el concepto de encapsulación en programación?
sobes.tech AI
Respuesta de la IA
El sentido de la encapsulación en programación consiste en combinar datos y métodos para trabajar con ellos en un solo objeto y ocultar la implementación interna del mundo exterior. Esto permite controlar el acceso a los datos, protegerlos de cambios incorrectos y simplificar el mantenimiento del código, haciéndolo más modular y flexible.
Las principales ventajas de la encapsulación:
- Ocultación de datos: El estado interno del objeto solo es accesible a través de métodos específicos (getters y setters).
- Control de acceso: Se puede aplicar lógica de validación al modificar los datos.
- Reducción de acoplamiento: Los cambios en la implementación interna de un objeto no requieren cambios en otros objetos que lo utilizan, siempre que la interfaz de interacción permanezca igual.
- Mejora en la mantenibilidad: El código se vuelve más comprensible y fácil de modificar.
Ejemplo en JavaScript:
class User {
constructor(name, age) {
this._name = name; // Propiedad privada (convención, no obligatoria en JS hasta campos privados)
this._age = age;
}
getName() { // Getter para name
return this._name;
}
getAge() { // Getter para age
return this._age;
}
setAge(newAge) { // Setter para age con validación
if (newAge > 0) {
this._age = newAge;
} else {
console.error("La edad debe ser mayor que cero.");
}
}
}
const user = new User("Ivan", 30);
console.log(user.getName()); // Acceso a través del getter: Ivan
user.setAge(31); // Cambio a través del setter con validación
console.log(user.getAge()); // Acceso a través del getter: 31
user.setAge(-5); // Error al intentar un cambio incorrecto