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 sobre Métodos y Variables estáticos
consulta el Curso de Programación Orientada a Objetos leer más
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}");