Sobes.tech
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();
    }
}