csharp-clases

Qué son y cómo usar clases en C#

Una clase en C# es un tipo de dato que define un conjunto de campos, propiedades, métodos y eventos que representan un concepto o entidad en el mundo real.

Las clases proporcionan una plantilla para crear instancias de la clase. Cada instancia tiene su propio estado (almacenado en campos) y comportamiento (definido en métodos).

Las clases nos permiten encapsular datos y funcionalidades relacionadas en una sola entidad, lo que facilita la reutilización de código y el mantenimiento de nuestras aplicaciones. Son la base de la programación orientada a objetos.

Clases en C#

La sintaxis básica para definir una clase en C# es la siguiente,

[modificador] class NombreDeLaClase
{
    // Definición de campos
    [modificador] tipoDeDato nombreDelCampo;

    // Definición de propiedades
    [modificador] tipoDeDato nombreDeLaPropiedad { get; set; }

    // Definición de métodos
    [modificador] tipoDeRetorno nombreDelMetodo(parametros)
    {
        // Código del método
    }
}
  • NombreDeLaClase: Es el nombre único que se le da a la clase.
  • Modificador: Puede ser public, private, protected, entre otros, para definir el nivel de acceso de la clase, campos, propiedades y métodos.
  • tipoDeDato: Especifica el tipo de datos de los campos y propiedades.
  • nombreDelCampo, nombreDeLaPropiedad, nombreDelMetodo: Son los identificadores únicos de los campos, propiedades y métodos, respectivamente.
  • tipoDeRetorno: Especifica el tipo de datos que el método devuelve como resultado.
  • parametros: Son las variables que se utilizan para pasar información al método cuando se llama.

Las clases se pueden definir en cualquier parte del código, pero es común que se defina dentro de un archivo separado con la extensión .cs.

Composición de una clase en C#

Una clase en C# está compuesta por tres elementos principales: los campos, las propiedades y los métodos.

Persona
  • stringfechaNacimiento
  • stringdni
  • stringNombre
  • stringApellido
  • stringSaludar()
  • stringMandarEmail()

Los campos representan las variables o datos que forman parte de una clase. Estos pueden ser de diferentes tipos, como enteros, cadenas de texto, booleanos, etc. Los campos son la forma en la que almacenamos información dentro de una clase y nos permiten manipularla según nuestras necesidades.

Las propiedades son una forma de acceder y modificar los campos de una clase. Nos permiten establecer reglas y validaciones para el acceso a los datos, evitando cambios no deseados o incorrectos. Las propiedades son una capa de abstracción que nos facilita el manejo de los campos y nos brinda flexibilidad en la forma en que interactuamos con ellos.

Los métodos son las acciones o comportamientos que puede realizar una clase. Estos pueden ser funciones que devuelven un valor o procedimientos que no retornan nada. Los métodos nos permiten modularizar el código y dividir las tareas en partes más pequeñas y manejables.

Ejemplo básico

Para crear una clase en C#, utilizamos la palabra clave class seguida del nombre que le queramos dar a nuestra clase. Veamos un ejemplo:

public class Persona
{
    // Campos
    public int dni;
    private DateTime fechaNacimiento;
    
	// Propiedades
    public string Nombre { get; set; }
    private string Apellido { get; set; }   

    // Métodos
    public void Saludar()
    {
        Console.WriteLine("¡Hola!");
    }  
}

En este ejemplo hemos:

  • Declaración de la Clase
  • Creado campos, dni público y fechaNacimiento privado.
  • Defindo propiedades Nombre público y Apellido privado.
  • Definido un método Saludar().

Uso de clases

Creación de objetos

Para crear un objeto de una clase, se utiliza el operador new seguido del nombre de la clase y, opcionalmente, argumentos para el constructor si lo tiene.

Persona persona = new Persona("Juan", 25);

Acceso a campos y propiedades

Los campos y propiedades de una clase se acceden utilizando la notación de punto (.).

Console.WriteLine(persona.nombre);

Llamado de métodos

Los métodos de una clase se llaman utilizando la notación de punto (.).

persona.Saludar();

Ejemplos prácticos

Representación de una Persona

Esta clase Persona define una persona con las propiedades Nombre y Edad. Incluye un constructor para inicializar estos campos y un método Saludar que imprime un saludo personalizado.

public class Persona
{
    // Campos
    public string Nombre { get; set; } // Propiedad para el nombre de la persona
    public int Edad { get; set; } // Propiedad para la edad de la persona

    // Método constructor
    public Persona(string nombre, int edad)
    {
        Nombre = nombre; // Asigna el nombre proporcionado al campo Nombre
        Edad = edad; // Asigna la edad proporcionada al campo Edad
    }

    // Método
    public void Saludar()
    {
        Console.WriteLine($"¡Hola, soy {Nombre} y tengo {Edad} años!"); // Imprime un saludo con el nombre y la edad de la persona
    }
}

Representación de un Producto

La clase Producto representa un producto con las propiedades Nombre y Precio. Tiene un constructor para inicializar estos campos y un método MostrarInformacion que imprime los detalles del producto.

public class Producto
{
    // Campos
    public string Nombre { get; set; } // Propiedad para el nombre del producto
    public decimal Precio { get; set; } // Propiedad para el precio del producto

    // Método constructor
    public Producto(string nombre, decimal precio)
    {
        Nombre = nombre; // Asigna el nombre proporcionado al campo Nombre
        Precio = precio; // Asigna el precio proporcionado al campo Precio
    }

    // Método
    public void MostrarInformacion()
    {
        Console.WriteLine($"Producto: {Nombre}, Precio: {Precio}"); // Imprime la información del producto
    }
}