Sobes.tech
Junior

Care este diferența dintre o metodă statică și o metodă de instanță?

sobes.tech AI

Răspuns de la AI

Un metod static aparține clasei și este apelat fără a crea o instanță a obiectului. Metoda de instanță aparține unei instanțe a clasei și este apelată prin obiectul creat.

Diferențele principale:

Criteriu Metoda statică Metoda de instanță
Apartenență Clasei Instanței clasei
Apel Prin numele clasei Prin obiectul instanței
Acces la date Doar la membrii statici ai clasei La membrii statici și la datele instanței
Cuvânt cheie static Absent (implicit)
using System;

public class MyClass
{
    // Câmp static
    public static string StaticData = "This is static data";

    // Câmp de instanță
    public string InstanceData = "This is instance data";

    // Metodă statică
    public static void StaticMethod()
    {
        Console.WriteLine("Metodă statică apelată.");
        Console.WriteLine(StaticData); // Acces la câmpul static
        // Console.WriteLine(InstanceData); // Eroare: nu se poate accesa câmpul de instanță
    }

    // Metodă de instanță
    public void InstanceMethod()
    {
        Console.WriteLine("Metodă de instanță apelată.");
        Console.WriteLine(StaticData); // Acces la câmpul static
        Console.WriteLine(InstanceData); // Acces la câmpul de instanță
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        // Apelarea metodei statice prin numele clasei
        MyClass.StaticMethod();

        // Crearea unei instanțe a clasei
        MyClass myObject = new MyClass();

        // Apelarea metodei de instanță prin obiect
        myObject.InstanceMethod();
    }
}