Metoda statyczna albo metoda klasowa metoda klasy, która nie jest wywoływana w kontekście żadnego konkretnego obiektu tej klasy. Metody statyczne z reguły służą do obsługi składowych statycznych klas.

Właściwości

edytuj
  • W ciele metody statycznej, z racji tego iż nie jest wywoływana na rzecz konkretnego obiektu, nie można odwoływać się do składowych niestatycznych. Nie można więc użyć wskaźnika this, self, Me itp.
  • Metoda statyczna może wywołać jedynie inne metody statyczne w swojej klasie lub odwoływać się jedynie do pól statycznych w swojej klasie. Dostęp do pól i metod obiektów przekazywanych jako parametry czy też obiektów i funkcji globalnych następuje tak samo jak w zwykłej funkcji, jednak w przypadku obiektów własnej klasy ma dostęp do składowych prywatnych.
  • Metoda statyczna nie może być metodą wirtualną.

Przykład metody statycznej w C++

edytuj
  class Klasa 
  {  
    public:
      static int metodaStatyczna() 
      { 
        /* ciało metody */ 
      }

      int podajX() 
      { 
        return x; 
      }

      void wpiszX(int x) 
      { 
        this->x = x; 
      }
    private:
      int x;
  };

  int main() 
  {
    Klasa::metodaStatyczna(); // wywołanie poprzez nazwę klasy
    Klasa obiekt;
    obiekt.wpiszX(11); // wywołanie metody zwykłej
    obiekt.metodaStatyczna(); // wywołanie za pośrednictwem nazwy istniejącego obiektu
  }

W powyższym przykładzie widać, że metodę statyczną można wywołać zarówno poprzez podanie nazwy jej klasy, jak i poprzez nazwę obiektu danej klasy. W tym drugim przypadku metoda i tak zgodnie ze swoją definicją nie korzysta z danych przechowywanych w obiekcie, na rzecz którego zdaje się być wywoływana; wywołanie tego typu jest jedynie ułatwieniem składniowym.

Zobacz też

edytuj

Bibliografia

edytuj
  • Bjarne Stroustrup: Język C++. Warszawa: WNT, 2000. ISBN 83-204-2375-9.