2. DEFINICJA KLASY
Klasa to klasyfikator, który opisuje zbiór obiektów mających takie
same:
• Cechy (atrybuty oraz operacje)
• Ograniczenia (constrait)
• Semantykę
Klasa służy do tworzenia obiektów. Opisuje ona jak ten obiekt będzie wyglądać, ale
sama nie jest obiektem. Innymi słowy klasy opisują typ obiektów, a same obiekty są
używalnymi instancjami klasy.
3. Semantyka KLASY
• Klasa nie może uzyskiwać dostępu do private features(cech) cech
innej klasy, ani protected features innej klasy, która nie jest jej
przodkiem.
• Klasa może być przestzenią nazw (namespace) dla różnego rodzaju
klasyfikatorów zdefiniowanych w jej obrębie, w tym dla
klas,interfejsów i t.d.
• Nested classes wykorzystujemy z celem ukrycia pewnych informacji.
4. NotaCJA KLASY
• Klasę zapisuje się za pomocą symbolu klasyfikatora(prostokąt).
• Nie wykorzystujemy żadnego słowa kluczowego dla oznaczenia klasy,
ponieważ klasa – najczęściej używany klasyfikator.
• Klasa posiada 4 obowiązkowe składowe: atrybuty, operacje,
przyjęcia(receptions) i strukturę wewnętrzną.
5. CECHy KLASY
• Cechy statyczne muszą
być podkreślone.
• Plus (+) for public, minus
(-) for private, and hash
(#) for protected.
6. Objekt
Obiekty to instancje klasy, które muszą zawierać wartości dla każdego
atrybutu, który jest członkiem tej klasy, zgodnie z charakterystyką
atrybutu.
Obiekt jest jednostką o pewnym stanie(np. aktywny) i relacjach z
innymi obiektami.
Oznaczamy w taki sposób: NAZWA:KLASA
atrybut1:Atrybut = value
atrybut2:Atrybut = value2
11. Semantyka oraz notacja
• Jest to relacja pomiędzy
klasyfikatorami.
• Kazda taka relacja wiąże klasyfikator
szczegółowy i ogólny (super class).
• Klasyfikator szczegółowy dziedziczy
wszystkie nieprywatne pola.
• Oznaczana jest przez pustą strzałkę,
która wskazuje klasyfikator
nadrzędny(główny).
12. Co zrealizujemy za pomocą takiej relacji?
• Inheritance(Dziedziczenie)
• Multiple
Inheritance(Wielokrotne
dziedziczenie)
• Generalization Set
13. Generalization set
• GeneralizationSet pozwala na grupowanie generalizacji.
• Może być zwiazani z tak zwanym powertype
• Każda generalizacja w GeneralizationSet powinna mieć ten sam
klasyfikator generalny.
• Własności piszemy się obok strzałek relacji, za równo jak i
ograniczenia.
14. Ograniczenia
• Disjoint – klasyfikatory szczegółowe nie mają wspólnych instancji.
• Overlapping – klasyfikatory szczegółowe mogą współdzielić te same
instancje.
• Complete – każda instancja generalnego klasyfikatora jest instancją co
najmniej jednego szczegółowego klasyfikatora.
• Incomplete – instancja klasyfikatora generalnego nie musi być instancją
jakiegokolwiek klasyfikatora szczegółowego.
• Each generalization set has two properties -
isCovering (complete or incomplete constraint)
and isDisjoint (disjoint or overlapping constraint), to clarify what kind
of set it is.
17. ZadaNie 2
1. Czy Person koniecznie musi być instancją Employee ?
2. Czy może Person nie być instancją Woman, ani Man ?
3. Dlaczego wprowadzamy ograniczenie disjoint dla
relacji generalizacji między Person a [Woman , Man ] ?