C# | Encapsulación

La encapsulación se define como el empaquetado de datos en una sola unidad. Es el mecanismo que une el código y los datos que manipula. De otra manera, el encapsulamiento es un escudo protector que evita que el código acceda a los datos fuera de este escudo.

  • Técnicamente, en encapsulación, las variables o datos de una clase están ocultos de cualquier otra clase y solo se puede acceder a ellos a través de cualquier función miembro de la propia clase en la que se declaran.
  • Al igual que en la encapsulación, los datos de una clase se ocultan de otras clases, por lo que también se conoce como ocultación de datos .
  • La encapsulación se puede lograr al: Declarar todas las variables de la clase como privadas y usar las propiedades de C# en la clase para establecer y obtener los valores de las variables.

Ejemplo:

// C# program to illustrate encapsulation
using System;
  
public class DemoEncap {
      
    // private variables declared
    // these can only be accessed by
    // public methods of class
    private String studentName;
    private int studentAge;
      
    // using accessors to get and 
    // set the value of studentName
    public String Name
    {
          
        get
        {
            return studentName;    
        }
          
        set 
        {
            studentName = value;
        }
          
    }
      
    // using accessors to get and 
    // set the value of studentAge
    public int Age
    {
          
        get 
        {
            return studentAge;    
        }
          
        set 
        {
            studentAge = value;
        }
          
    }
  
      
}
  
// Driver Class
class GFG {
      
    // Main Method
    static public void Main()
    {
          
        // creating object
        DemoEncap obj = new DemoEncap();
  
        // calls set accessor of the property Name, 
        // and pass "Ankita" as value of the 
        // standard field 'value'
        obj.Name = "Ankita";
          
        // calls set accessor of the property Age, 
        // and pass "21" as value of the 
        // standard field 'value'
        obj.Age = 21;
  
        // Displaying values of the variables
        Console.WriteLine("Name: " + obj.Name);
        Console.WriteLine("Age: " + obj.Age);
    }
}

Producción:

Name: Ankita
Age: 21

Explicación: En el programa anterior, la clase DemoEncap está encapsulada ya que las variables se declaran como privadas. Para acceder a estas variables privadas, utilizamos los accesores de Nombre y Edad, que contienen el método get y set para recuperar y establecer los valores de los campos privados. Los accesores se definen como públicos para que puedan acceder en otra clase.

Ventajas de la encapsulación:

  • Ocultación de datos: el usuario no tendrá idea de la implementación interna de la clase. No será visible para el usuario cómo se almacenan los valores de la clase en las variables. Solo sabe que estamos pasando los valores a los accesores y que las variables se inicializan con ese valor.
  • Mayor flexibilidad: podemos hacer que las variables de la clase sean de solo lectura o de solo escritura, según nuestros requisitos. Si deseamos que las variables sean de solo lectura, solo debemos usar Get Accessor en el código. Si deseamos que las variables sean de solo escritura, solo debemos usar Set Accessor.
  • Reutilización: la encapsulación también mejora la reutilización y es fácil de cambiar con nuevos requisitos.
  • Probar el código es fácil: el código encapsulado es fácil de probar para las pruebas unitarias.

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *