CSharp

Tutorial CSharp: Clases y encapsulación

CSharp clases encapsulación: guía y ejemplos. Domina la encapsulación en clases de CSharp con ejemplos prácticos y detallados.

Las clases son uno de los fundamentos más importantes de la programación orientada a objetos en C#. En esencia, una clase es un plano o una plantilla que define los campos (variables), propiedades y métodos (funciones) para un tipo de objeto en particular.

Una clase es una plantilla de definición de tipos de datos. Esta plantilla describe las características y comportamientos que un objeto del tipo de clase puede tener. Las características se describen en forma de campos y propiedades (datos miembro), mientras que los comportamientos se definen en forma de métodos (funciones miembro).

Cada instancia de una clase tiene su propia copia de estos miembros de datos y puede comportarse de manera independiente del resto. Las clases también pueden contener otros miembros, como eventos, delegados y otros tipos anidados, pero estos están más allá del alcance de este tutorial.

Sintaxis para la declaración de una clase

Aquí se muestra un ejemplo de cómo declarar una clase básica en C#:

public class MiClase
{
    // Campos
    private int miCampo;

    // Propiedades
    public int MiPropiedad
    {
        get { return miCampo; }
        set { miCampo = value; }
    }

    // Métodos
    public void MiMetodo()
    {
        // Código del método
    }
}

En este ejemplo:

  • public es el modificador de acceso que determina dónde puede ser accesible la clase. En este caso, la clase puede ser accesible desde cualquier lugar. Otros modificadores de acceso incluyen private, protected y internal.

  • class es la palabra clave que indica que este es el comienzo de una definición de clase.

  • MiClase es el nombre de la clase. El nombre de la clase sigue las mismas reglas que las variables en C#, excepto que suele empezar por mayúscula.

  • { } se utilizan para definir el cuerpo de la clase, que contiene los campos, las propiedades y los métodos de la clase.

Campos, Propiedades y Métodos

Modificadores de acceso

En C#, los modificadores de acceso son palabras clave que se utilizan para controlar la visibilidad y accesibilidad de miembros (variables, métodos, propiedades, etc.) dentro de una clase. Hay cuatro modificadores de acceso en C#:

  1. public: El miembro es accesible desde cualquier lugar, incluso fuera de la clase que lo define.

  2. private: El miembro solo es accesible desde dentro de la misma clase que lo define. Es el modificador de acceso por defecto para miembros de clase si no se especifica ningún otro.

  3. protected: El miembro es accesible desde dentro de la misma clase y también desde clases derivadas (heredadas) de la clase que lo define.

  4. internal: El miembro es accesible desde cualquier lugar dentro del mismo ensamblado (assembly). Un ensamblado es un archivo ejecutable o una biblioteca (DLL) que contiene uno o más tipos de C#.

Nota: C# también tiene un quinto modificador de acceso llamado protected internal, que combina las características del modificador protected y internal, permitiendo el acceso desde clases derivadas en el mismo ensamblado y desde cualquier lugar dentro del ensamblado.

Campos

Los campos son variables que se definen dentro de una clase. Cada instancia de la clase tiene su propia copia de estos campos. Aquí está el campo en el ejemplo anterior:

private int miCampo;

En este ejemplo, private es un modificador de acceso que significa que el campo solo puede ser accesible desde dentro de la clase. int es el tipo de datos del campo y miCampo es el nombre del campo.

Propiedades

Las propiedades en C# son una forma de acceder a los campos de una clase. Proporcionan un nivel de abstracción y control sobre cómo se accede a los datos de la clase. Aquí está la propiedad en el ejemplo anterior:

public int MiPropiedad
{
    get { return miCampo; }
    set { miCampo = value; }
}

En este ejemplo, public es un modificador de acceso que significa que la propiedad puede ser accesible desde cualquier lugar. int es el tipo de datos de la propiedad y MiPropiedad es el nombre de la propiedad.

get y set son los accesorios de la propiedad. El accesorio get se utiliza para devolver el valor del campo y el accesorio set se utiliza para asignar un valor al campo. value es una palabra clave que representa el valor que se está asignando a la propiedad. Si estos métodos no tienen un modificador de acceso explícito, asumirán el de la propiedad (en este caso, public).

La principal diferencia entre los campos y las propiedades es que las propiedades utilizan getters y setters para obtener y establecer el valor de la propiedad. Esto permite una validación y lógica adicional al acceder o cambiar los datos, lo que facilita el encapsulamiento y la protección de los datos internos de la clase.

Es posible tener diferentes niveles de acceso para los métodos get y set, lo que permite controlar la lectura y escritura de los datos desde fuera de la clase.

Métodos

Los métodos son funciones que se definen dentro de una clase. Pueden operar en los campos y propiedades de la clase. Aquí está el método en el ejemplo anterior:

public void MiMetodo()
{
    // Código del método
}

En este ejemplo, public es un modificador de acceso que significa que el método puede ser accesible desde cualquier lugar. void es el tipo de retorno del método, que en este caso no retorna nada. MiMetodo es el nombre del método y () se utilizan para definir los parámetros del método, que en este caso no tiene ninguno.

Resumen

Las clases son la base de la programación orientada a objetos en C#. Proporcionan una forma de encapsular los datos y los comportamientos relacionados en un solo paquete, lo que facilita el desarrollo de programas más grandes y más complejos. A partir de este entendimiento básico de las clases en C#, sería posible seguir explorando conceptos más avanzados como la herencia y el polimorfismo.

Certifícate en CSharp con CertiDevs PLUS

Ejercicios de esta lección Clases y encapsulación

Evalúa tus conocimientos de esta lección Clases y encapsulación con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Todas las lecciones de CSharp

Accede a todas las lecciones de CSharp y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender el concepto de clases en C# y su importancia en la programación orientada a objetos.
  2. Aprender cómo declarar una clase, incluyendo el uso de campos, propiedades y métodos.
  3. Entender los modificadores de acceso y cómo controlan la visibilidad de los miembros de la clase.
  4. Conocer la diferencia entre campos y propiedades, y cómo se utilizan los accesorios get y set en las propiedades.
  5. Familiarizarse con la sintaxis para la declaración de una clase y cómo se instancian objetos a partir de ella.