Los métodos y campos estáticos son aquellos que no pertenecen a una instancia en particular, sino que pertenece directamente a la clase en sí misma. Esto significa que podemos llamarlos directamente desde la clase, sin necesidad de crear una instancia de la misma.
Si quieres aprender más consulta el Curso de Programación Orientada a Objetos
Los métodos y campos estáticos tienen sus ventajas, pero también sus inconvenientes. Si queréis aprender más sobre ellos, y cuando usarlos y cuando no, leer el artículo que os he puesto.
Métodos estáticos
Para crear un método estático, añadimos la palabra clave static antes del tipo de retorno.
public class Utilidades
{
public static int Sumar(int a, int b)
{
return a + b;
}
}
En el ejemplo anterior, Sumar es un método estático. Para llamarlo, no necesitamos instanciar la clase Utilidades:
int resultado = Utilidades.Sumar(5, 3);
Campos estáticos
Un campo estático, similarmente, es una variable que pertenece a la clase en sí y no a instancias específicas de la clase. Todos los objetos de la clase comparten el mismo campo estático.
public class Contador
{
public static int Cuenta;
public Contador()
{
Cuenta++;
}
}
En este ejemplo, Cuenta es un campo estático que se incrementa cada vez que se crea una nueva instancia de Contador.
Contador c1 = new Contador();
Contador c2 = new Contador();
Console.WriteLine(Contador.Cuenta); // Output: 2
Ejemplo práctico
Vamos a crear una clase que combine campos y métodos estáticos para ilustrar cómo pueden ser utilizados juntos.
public class Calculadora
{
// Campo estático
public static int TotalOperaciones = 0;
// Método estático
public static int Sumar(int a, int b)
{
TotalOperaciones++;
return a + b;
}
public static int Restar(int a, int b)
{
TotalOperaciones++;
return a - b;
}
public static int Multiplicar(int a, int b)
{
TotalOperaciones++;
return a * b;
}
public static int Dividir(int a, int b)
{
TotalOperaciones++;
return a / b;
}
}
En este ejemplo:
- TotalOperaciones es un campo estático que cuenta el número total de operaciones realizadas.
- Sumar, Restar, Multiplicar y Dividir son métodos estáticos que realizan operaciones aritméticas y actualizan el campo estático
TotalOperaciones.
Ahora podemos usar los campos estáticos de la clase Calculadora sin crear una instancia de la clase.
int suma = Calculadora.Sumar(10, 5);
int resta = Calculadora.Restar(10, 5);
int multiplicacion = Calculadora.Multiplicar(10, 5);
int division = Calculadora.Dividir(10, 5);
Console.WriteLine($"Suma: {suma}");
Console.WriteLine($"Resta: {resta}");
Console.WriteLine($"Multiplicación: {multiplicacion}");
Console.WriteLine($"División: {division}");
Console.WriteLine($"Total de operaciones: {Calculadora.TotalOperaciones}");
