Sobes.tech
Junior

Qual é a diferença entre um método estático e um método de instância?

sobes.tech IA

Resposta da IA

Um método estático pertence à classe e é chamado sem criar uma instância do objeto. O método de instância pertence a uma instância da classe e é chamado através do objeto criado.

Principais diferenças:

Critério Método estático Método de instância
Pertencimento À classe À instância da classe
Chamada Através do nome da classe Através do objeto da instância
Acesso a dados Apenas aos membros estáticos da classe Aos membros estáticos e aos dados da instância
Palavra-chave static Ausente (padrão)
using System;

public class MyClass
{
    // Campo estático
    public static string StaticData = "This is static data";

    // Campo de instância
    public string InstanceData = "This is instance data";

    // Método estático
    public static void StaticMethod()
    {
        Console.WriteLine("Método estático chamado.");
        Console.WriteLine(StaticData); // Acesso ao campo estático
        // Console.WriteLine(InstanceData); // Erro: não há acesso ao campo de instância
    }

    // Método de instância
    public void InstanceMethod()
    {
        Console.WriteLine("Método de instância chamado.");
        Console.WriteLine(StaticData); // Acesso ao campo estático
        Console.WriteLine(InstanceData); // Acesso ao campo de instância
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        // Chamada ao método estático através do nome da classe
        MyClass.StaticMethod();

        // Criação de uma instância da classe
        MyClass myObject = new MyClass();

        // Chamada ao método de instância através do objeto
        myObject.InstanceMethod();
    }
}