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