0. Klasa Zbiór własności grupy obiektów o tych samych charakterystykach Ekstensja klasy



Pobieranie 260,39 Kb.
Strona1/4
Data23.10.2017
Rozmiar260,39 Kb.
  1   2   3   4

0. Klasa - Zbiór własności grupy obiektów o tych samych charakterystykach

Ekstensja klasy - aktualny (zmienny w czasie) zestaw wszystkich wystąpień tej klasy. Struktura przechowująca wszystkie obiekty będące członkami danej klasy.

Klasa konkretna ma bezpośrednie wystąpienia, nie może zawierać metod abstrakcyjnych, może zawierać implementacje metod abstrakcyjnych,

- jedna z podklas musi zawierać implementację metod abstrakcyjnych

wyspecyfikowana w nadklasie

1a. Czy klasa abstrakcyjna może być zdefiniowana wyłacznie na szczycie hierarchii klas?

NIE MUSI BYC NA SZCZYCIE - nie może znaleźć się tylko w liściu drzewa klas.

Klasa abstrakcyjn nie ma bezpośrednich wystąpień i służy wyłącznie jako nadklasa dla innych klas. Stanowi jakby wspólną część definicji grupy klas o podobnej semantyce.

Klasa abstrakcyjna może zawierać abstrakcyjne metody, ale nie musi.

Klasy parametryzowane - służą do definiowania zbiorów (szerzej - kolekcji). Każdy obiekt klasy Zbiór
,

czy analogicznie ZbiórPracowników, jest zbiorem.

1. podnoszą poziom abstrakcji

2. wpływają na zmniejszenie długości kodu źródłowego programu

3. mają duży potencjał ponownego użycia.
1b.Czy klasa na szczycie hierarchii klas zawsze musi klasą abstrakcyjną?

NIE – może to być klasa konkretna

2.Czy klasa abstrakcyjna może

zawierać implementacje metod?



TAK – może zawierać.

3.Polimorfizm i polimorfizm metod

Z greckiego, polimorfizm - oznacza „wiele form” („wiele postaci”) jednego bytu.

Operacja wywoływana za pośrednictwem komunikatu może być różnie wykonana, w zależności od rodzaju obiektu, do którego ten komunikat został wysłany; Innymi słowy - może istnieć wiele metod implementujących daną operację. Operacja drukuj – wiele metod implement.

4. Różnica między atrybutem klasowy

a atrybutem obiektu, metodą klasową a metodą obiektu

Atrybut klasowy - stały dla wszystkich obiektów danej klasy

Atrybut obiektu - będący wartością, nie posiada tożsamości. Może być rózny dla każdego obiektu.

Metoda klasowa operuje na ekstensji klasy, czyli posiada dostęp do atrybutów wszystkich obiektów danej klasy.

Metoda obiektu wywołana za pomocą komunikatu na rzecz obiektu, obiekt jest jest argumentem dla tej metody.

Metoda abstrakcyjna jest to metoda wyspecyfikowana w nadklasie, której implementacja musi znaleźć się w którejś z podklas.

Metoda jest implementacją operacji w jednej z klas, może być wiele metod implementujących daną operację.

5. Pojęcie stereotypu

mechanizm rozszerzenia UML, służa do pogrupowania np. obiektów, klas, metod pod jednym szyldem, wszystko w << >>,



<< extend>> <>

6, Operacja, operacja abstrakcyjna

Operacja jest funkcją, która może być zastosowana do obiektu. Operacja jest własnością klasy obiektów, ponieważ jest przechowywana w klasie.



Jedna operacja drukuj, ale różne sposoby drukowania - trzy metody implementujące operację drukuj.

7. Komunikat - obiekt jest adresatem, który poprzedza wywołanie operacji:
obiekt.operacja (arg1, arg2,...) - obiekt jest tu domyślnym argumentem metody

Komunikat nie określa, która z metod implementujących daną operację ma być wywołana; zależy to od konkretnego obiektu, wywoływana jest ta związana z danym obiektem

8. Wołanie funkcji:

obiekt jest komunikowany jako parametr:


funkcja (obiekt, arg1, arg2, ...)

9. Hermetyzacja - rozróżnienie pomiędzy interfejsem do obiektu opisującym co obiekt robi, a implementacją definiującą, jak jest zbudowany i jak robi, to co ma zrobić.

Hermetyzacja ortodoksyjna -
na zewnątrz są widoczne metody,
atrybuty obiektu są ukryte

Hermetyzacja ortogonalna - dowolna własność obiektu (atrybut, metoda,...) może być prywatna (ukryta) lub publiczna

10. Dziedziczenie

pozwala na tworzenie drzewa klas lub

innych struktur bez pętli.

Dziedziczenie wielokrotne (wielodziedziczenie) ma miejsce, gdy klasa dziedziczy inwarianty z więcej niż jednej klasy.
Kl.pojazd=> kl.p.wodny(atr. max.predk)

kl.p.ladowy(atr. max.predk) => klasa. Amfibia ktora dziedziczy po obydwu powyższych klasach. Problem:

Który z atrybutów max_prędkość ma odziedziczyć amfibia?

Możemy obejść stosując kompozycję


Dziedziczenie wieloaspektowe:

Kilka aspektów dziedziczenia, te aspekty dziedziczenia nie mogą być opuszczane.



kl.Pojazd /ze wzgl. na teren/ =>

kl. pojazd ladowy i kl. pojazd wodny

/ ze wzgl. na napęd/ =>

kl. pojazd silnikowy i kl. pojazd wiatrowy



11. Przesłanianie (overriding)

Wybierana jest metoda znajdująca się najbliżej obiektu, w sensie hierarchii dziedziczenia. Metoda z klasy bardziej wyspecjalizowanej może przesłonić metodę z klasy bardziej ogólnej.



12. Ograniczenia specyfikują restrykcje nakładane na elementy modelu. Mogą to być wyrażenia języka naturalnego, formuły matematyczne lub fragment kodu.

statyczne: {<=10 000} i dynamiczne:

{pensja nie wzrasta o więcej niż 300}



13. Czy zasadę zamienialności można stosować do obiektów klas tworzących agregację?

Agregacja rozumiemy na 2 sposoby

1. jako „silny” związek część-całość pomiędzy obiektami świata rzeczywistego; np. silnik jest częścią samochodu. I to juz = > KOMPOZYCJA - rodzaj agregacji

2.

Jako pomocniczy środek do modelowania dowolnej innej sytuacji, kiedy grupę obiektów warto - w pewnych sytuacjach - potraktować jak całość slabsze = > AGREGACJA



Własności agregacji:

1. jest relacją niesymetryczną, tzn. jeśli B jest częścią A, to A nie jest częścią B

2. jest relacją przechodnią tzn. jeśli C jest

częścią B i B jest częścią A, to C jest częścią A



Zasada zamienialności byt programistyczny typu B może zastąpić byt typu A, o ile B jest podtypem A.

Nie żądaj więcej, nie obiecuj mniej

O

A

biekt klasy B może zastąpić obiekt klasy A, co oznacza, że jego zachowanie z punktu widzenia obiektu wysyłającego komunikat wywołujący metodę m na obiekcie klasy B, powinno być takie same, jak gdyby komunikat wysłano do obiektu klasy A.

W
m
ydaje mi się, że nie. Jeśli agregacja to nie można stosować zamienialności !

B



m


14a. Agregacja

jest asocjacją: dla obu jej końców są określane liczności, jest to tez

związek: całość-część.

całość:

składa się z, zawiera, obejmuje,



część: wchodzi w skład, należy, jest zawarta w, itp

GRUPA <>---------- STUDENT, może mieć atrybuty

|



TERMIN

od , do
Kiedy użyć agregacji?



1. kryterium istnienia - część nie istnieje samodzielnie bez całości

2. kryterium wstawiania - nie ma sensu wstawianie części do systemu, jeśli nie wstawiono do niego całości

3. kryterium usuwania - usuwanie całości powinno skutkować usunięciem wszystkich powiązanych z tą całością części,w drugą stronę to nie obowiązuje

4. kryterium fizycznej części.

Agregacja rekursywna - obiekt klasy K może zarówno wchodzić w skład innych obiektów klasy K, jak i zawierać obiekty klasy K.


i np.inne liczności







14b. Kompozycja

oznacza, że cykl życiowy składowej zawiera się w cyklu życiowym całości, oraz że składowa nie może być współdzielona.







  1   2   3   4


©operacji.org 2017
wyślij wiadomość

    Strona główna