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