Pole statyczne to pole klasy oznaczone słowem kluczowym static. Nie należy ono do konkretnego obiektu, lecz do samej klasy. Oznacza to, że można z niego korzystać bez tworzenia instancji klasy.
Cechy pola statycznego
- istnieje na poziomie klasy, a nie obiektu,
- jest współdzielone przez wszystkie obiekty danej klasy,
- może zostać zainicjalizowane przed utworzeniem pierwszego obiektu,
- odwołujemy się do niego zwykle przez nazwę klasy.
Przykład w C
class Licznik
{
public static int liczbaObiektow = 0;
public Licznik()
{
liczbaObiektow++;
}
}
Console.WriteLine(Licznik.liczbaObiektow); // dostęp bez tworzenia obiektu
W przykładzie pole liczbaObiektow istnieje już na poziomie klasy Licznik. Nie trzeba pisać new Licznik(), aby uzyskać do niego dostęp.
Pole statyczne a zwykłe pole
Zwykłe pole, czyli pole instancyjne, należy do konkretnego obiektu:
class Osoba
{
public string imie;
}
Aby użyć pola imie, trzeba utworzyć obiekt:
Osoba o = new Osoba();
o.imie = "Anna";
Ważne na egzaminie
Modyfikatory private, protected i public określają poziom dostępu do pola. Nie decydują o tym, czy pole istnieje przed utworzeniem obiektu. O tym decyduje modyfikator static.