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.
Si quieres aprender más sobre Objetos, Clases e Instancias
consulta el Curso de Programación Orientada a Objetos leer más
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.
- 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 yfechaNacimiento
privado. - Defindo propiedades
Nombre
público yApellido
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("Luis", 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
}
}