Składnik statyczny klasy

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Czym jest składnik statyczny klasy?

Składnik statyczny klasy to pole lub metoda oznaczona jako static. Należy ona do klasy, a nie do konkretnego obiektu. Oznacza to, że wszystkie obiekty tej klasy korzystają z jednej wspólnej wersji takiego składnika.

Najczęściej składniki statyczne stosuje się do przechowywania danych wspólnych dla wszystkich instancji, np. liczby utworzonych obiektów, wspólnej konfiguracji albo stałych wartości.

Pole statyczne

Pole statyczne istnieje tylko raz, niezależnie od liczby utworzonych obiektów.

class Licznik {
public:
    static int liczbaObiektow;

    Licznik() {
        liczbaObiektow++;
    }
};

int Licznik::liczbaObiektow = 0;

W tym przykładzie liczbaObiektow jest wspólne dla wszystkich obiektów klasy Licznik.

Metoda statyczna

Metoda statyczna również należy do klasy. Można ją wywołać bez tworzenia obiektu.

class Matematyka {
public:
    static int kwadrat(int x) {
        return x * x;
    }
};

int wynik = Matematyka::kwadrat(5);

Ważne cechy

  • składnik statyczny jest wspólny dla wszystkich instancji klasy,
  • można odwoływać się do niego przez nazwę klasy, np. Klasa::pole,
  • metoda statyczna nie ma dostępu do this, bo nie działa na konkretnym obiekcie,
  • nie służy do tworzenia prywatnych kopii pól dla każdego obiektu.

Wniosek egzaminacyjny

Za pomocą składnika statycznego można zachować wartość wspólną dla wszystkich instancji klasy. To odróżnia go od zwykłych pól obiektu, które każdy obiekt posiada osobno.