Sobes.tech
Junior

Jaka jest różnica między metodą statyczną a metodą instancji?

sobes.tech AI

Odpowiedź od AI

Metoda statyczna należy do klasy i jest wywoływana bez tworzenia instancji obiektu. Metoda instancyjna należy do instancji klasy i jest wywoływana przez utworzony obiekt.

Główne różnice:

Kryterium Metoda statyczna Metoda instancyjna
Przynależność Do klasy Do instancji klasy
Wywołanie Przez nazwę klasy Przez obiekt instancji
Dostęp do danych Tylko do statycznych członków klasy Do statycznych członków i danych instancji
Słowo kluczowe static Nieobecne (domyślnie)
using System;

public class MyClass
{
    // Pole statyczne
    public static string StaticData = "This is static data";

    // Pole instancyjne
    public string InstanceData = "This is instance data";

    // Metoda statyczna
    public static void StaticMethod()
    {
        Console.WriteLine("Wywołano metodę statyczną.");
        Console.WriteLine(StaticData); // Dostęp do pola statycznego
        // Console.WriteLine(InstanceData); // Błąd: brak dostępu do pola instancyjnego
    }

    // Metoda instancyjna
    public void InstanceMethod()
    {
        Console.WriteLine("Wywołano metodę instancyjną.");
        Console.WriteLine(StaticData); // Dostęp do pola statycznego
        Console.WriteLine(InstanceData); // Dostęp do pola instancyjnego
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        // Wywołanie metody statycznej przez nazwę klasy
        MyClass.StaticMethod();

        // Utworzenie instancji klasy
        MyClass myObject = new MyClass();

        // Wywołanie metody instancyjnej przez obiekt
        myObject.InstanceMethod();
    }
}