Pole statyczne
Pole statyczne to pole należące do klasy, a nie do konkretnego obiektu. Oznacza się je modyfikatorem static.
Jeżeli w klasie istnieje pole statyczne, to wszystkie obiekty tej klasy korzystają z tej samej zmiennej zapisanej w pamięci. Zmiana wartości pola statycznego przez jeden fragment kodu jest widoczna dla pozostałych obiektów.
Przykład
class MojaKlasa {
private static int licznik;
}
W tym przykładzie pole licznik:
- jest private, czyli dostępne tylko wewnątrz klasy,
- jest static, czyli wspólne dla całej klasy,
- ma typ int.
Nie oznacza to, że pole jest stałe. Modyfikator static nie blokuje zmiany wartości. Do tego służy np. final w Javie lub readonly/const w C#.
Typowe zastosowanie
Pole statyczne często wykorzystuje się jako licznik utworzonych obiektów:
class Uzytkownik {
private static int liczbaUzytkownikow = 0;
public Uzytkownik() {
liczbaUzytkownikow++;
}
}
Każde utworzenie obiektu zwiększa tę samą zmienną liczbaUzytkownikow.
Najważniejsze do egzaminu
Jeśli widzisz zapis:
static int licznik;
to pamiętaj: wartość pola jest wspólna dla wszystkich instancji klasy.