Junior
¿Cuál es la diferencia entre un método estático y un método de instancia?
sobes.tech AI
Respuesta de la IA
Un método estático pertenece a la clase y se llama sin crear una instancia del objeto. El método de instancia pertenece a una instancia de la clase y se llama a través del objeto creado.
Diferencias principales:
| Criterio | Método estático | Método de instancia |
|---|---|---|
| Pertenencia | A la clase | A la instancia de la clase |
| Llamada | A través del nombre de la clase | A través del objeto de la instancia |
| Acceso a datos | Solo a los miembros estáticos de la clase | A los miembros estáticos y a los datos de la instancia |
| Palabra clave | static |
No presente (por defecto) |
using System;
public class MyClass
{
// Campo estático
public static string StaticData = "This is static data";
// Campo de instancia
public string InstanceData = "This is instance data";
// Método estático
public static void StaticMethod()
{
Console.WriteLine("Static method called.");
Console.WriteLine(StaticData); // Acceso al campo estático
// Console.WriteLine(InstanceData); // Error: no se puede acceder al campo de instancia
}
// Método de instancia
public void InstanceMethod()
{
Console.WriteLine("Instance method called.");
Console.WriteLine(StaticData); // Acceso al campo estático
Console.WriteLine(InstanceData); // Acceso al campo de instancia
}
}
public class Program
{
public static void Main(string[] args)
{
// Llamada al método estático a través del nombre de la clase
MyClass.StaticMethod();
// Creación de una instancia de la clase
MyClass myObject = new MyClass();
// Llamada al método de instancia a través del objeto
myObject.InstanceMethod();
}
}