Archiwa tagu: metoda

Klasy i obiekty – trochę teorii

Rodzaje relacji pomiędzy obiektami:

  • powiązanie – luźna relacja, mówiąca tylko o współdziałaniu obiektów
  • agregacja – silna forma powiązania obiektów.
  • skojarzenie
  • generalizacja – służy do wyrażania podobieństwa pomiędzy obiektami
  • dziedziczenie – doskonale znane z programowania. Pozwala elementom bardziej szczegółowym wykorzystywać strukturę obiektów bardziej ogólnych.

Własności obiektów:

  • atrybut – struktura danych, która opisuje jakąś cechę obiektu (np. string backgroundColor = '#FF00FF';).
    Przyjmowane wartości są ściśle określone poprzez typ danych (np. integer).
    Jeżeli mamy sytuację, że wartością miałby być inny obiekt, to wtedy wartością atrybutu nie jest ten obiekt, lecz wskazanie na obiekt (powiązanie). Dobrze widać to na przykładzie języka C++. Atrybutami są typy proste (int, float itd.), natomiast chcąc mieć w klasie bardziej rozbudowany obiekt, umieszczamy de facto wskaźnik do niego.
  • usługa – (abstrakcyjne pojęcie) zachowanie obiektu, funkcjonalność jaką musi dostarczyć obiekt (powiedziałabym, że interfejs definiuje nam usługi, a klasa będzie je implementować w metodach). Jest opisywana przez sygnaturę – ilość raz typy parametrów, zwracany wynik.
  • metoda – implementacja usługi. Wiązanie metod do usług może być realizowane na różne sposoby (np. dziedzicząca klasa może nadpisywać metodę zdefiniowaną w klasie wyżej itp.)
  • stan – stan obiektu w danej chwili, zapisane w atrybutach wartości, które wpływają  na sposób zachowania się obiektu. Zmienia się na skutek wywołania metod (np. ustawienie atrybutu albo wykonanie na nim jakiś obliczeń) lub samoistnej zmiany.
  • komunikat – zlecenie wykonania usługi + parametry (czyli de facto wywołanie metody).