Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Encapsulamiento | Principios de POO
C# Más Allá de lo Básico

bookEncapsulamiento

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

index.cs

copy
1234567891011121314151617181920212223242526272829303132
public 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.

Note
Nota

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?

question mark

¿Qué función cumplen los modificadores de acceso en la encapsulación en C#?

Select the correct answer

question mark

¿Cuál de los siguientes especificadores de acceso debería usarse menos para preservar la encapsulación?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 6

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

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

bookEncapsulamiento

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

index.cs

copy
1234567891011121314151617181920212223242526272829303132
public 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.

Note
Nota

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?

question mark

¿Qué función cumplen los modificadores de acceso en la encapsulación en C#?

Select the correct answer

question mark

¿Cuál de los siguientes especificadores de acceso debería usarse menos para preservar la encapsulación?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 6
some-alt