Encapsulamiento
La encapsulación es esencialmente un método de organización de datos. Consiste en organizar los datos y métodos en forma de clases, de modo que todo el programa se base en clases y los datos y métodos estén encapsulados dentro de esas clases. Esta encapsulación proporciona una forma de controlar el acceso al estado interno de un objeto, promoviendo la modularidad, mantenibilidad y seguridad en un sistema de software.
En la encapsulación, se utilizan los modificadores de acceso como public
, private
y protected
para ocultar la mayoría de los campos y métodos de una clase y exponer solo aquellos que necesitan ser utilizados desde el exterior.
Dado que la mayor parte de los datos no es accesible directamente desde fuera de la clase, se utilizan getters y setters para acceder o modificar los datos.
Un buen ejemplo es una clase Customer
que define al cliente de un banco:

index.cs
1234567891011121314151617181920212223242526272829303132public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }
En el ejemplo anterior, ningún campo es accesible o modificable directamente desde fuera. En su lugar, se utilizan métodos como Deposit
y Withdraw
para modificar el valor cuando sea necesario. De manera similar, para acceder al valor del saldo se utiliza el método getBalance
.
El uso de la palabra clave public
generalmente se desaconseja a menos que sea necesario.
Como recordatorio, en caso de que queramos mantener un campo inaccesible desde fuera de la clase pero accesible desde las clases derivadas, podemos utilizar el modificador de acceso protected
.
1. ¿Qué función cumplen los modificadores de acceso en la encapsulación en C#?
2. ¿Cuál de los siguientes especificadores de acceso debería usarse menos para preservar la encapsulación?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you provide an example of encapsulation in code?
Why is using public fields discouraged in encapsulation?
How do getters and setters improve security?
Awesome!
Completion rate improved to 2.04
Encapsulamiento
Desliza para mostrar el menú
La encapsulación es esencialmente un método de organización de datos. Consiste en organizar los datos y métodos en forma de clases, de modo que todo el programa se base en clases y los datos y métodos estén encapsulados dentro de esas clases. Esta encapsulación proporciona una forma de controlar el acceso al estado interno de un objeto, promoviendo la modularidad, mantenibilidad y seguridad en un sistema de software.
En la encapsulación, se utilizan los modificadores de acceso como public
, private
y protected
para ocultar la mayoría de los campos y métodos de una clase y exponer solo aquellos que necesitan ser utilizados desde el exterior.
Dado que la mayor parte de los datos no es accesible directamente desde fuera de la clase, se utilizan getters y setters para acceder o modificar los datos.
Un buen ejemplo es una clase Customer
que define al cliente de un banco:

index.cs
1234567891011121314151617181920212223242526272829303132public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }
En el ejemplo anterior, ningún campo es accesible o modificable directamente desde fuera. En su lugar, se utilizan métodos como Deposit
y Withdraw
para modificar el valor cuando sea necesario. De manera similar, para acceder al valor del saldo se utiliza el método getBalance
.
El uso de la palabra clave public
generalmente se desaconseja a menos que sea necesario.
Como recordatorio, en caso de que queramos mantener un campo inaccesible desde fuera de la clase pero accesible desde las clases derivadas, podemos utilizar el modificador de acceso protected
.
1. ¿Qué función cumplen los modificadores de acceso en la encapsulación en C#?
2. ¿Cuál de los siguientes especificadores de acceso debería usarse menos para preservar la encapsulación?
¡Gracias por tus comentarios!