Realizacja ekstensji klasy w oparciu o tablicę statyczną oraz w

advertisement
Realizacja ekstensji klasy w oparciu o tablicę statyczną oraz w oparciu o
kolekcje. Realizacja metod obiektu, metod klasowych i polimorfizmu
metod.
Marcin Kujawa
Michał Łobarzewski
Plan prezentacji:









Metody obiektowe
Metody klasowe
Polimorfizm metod
Ekstensja na tablicy dedykowanej
Ekstensja na tablicy ogólnej
Ekstensja na tablicy ogólnej z dziedziczeniem
Ekstensja na wektorze dedykowanym
Ekstensja na wektorze ogólnym
Ekstensja na wektorze ogólnym z dziedziczeniem
Metody Obiektowe
Metoda obiektowa jest to metoda, która ma dostęp i zmienia
atrybuty konkretnego obiektu.
Przykład: \Funkcje statyczne i obiektu\Funkcje.Java
Metody Klasowe (statyczne)
Metoda klasowa jest to metoda, która ma dostęp do całej
ekstensji klasy, do każdego obiektu.
Przykład: \Funkcje statyczne i obiektu\Funkcje.Java
Polimorfizm metod
Operacja wywołana 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.
Wywołujemy przeciążoną metodę na rzecz obiektów klas które
dziedziczą po sobie
W zależności od tego na rzecz jakiego obiektu ją wywołamy,
da ona różny efekt
Przykład: \Polimorfizm metod\PolimorfizmMetod.Java
Realizacja ekstensji klasy oparta na tablicach


Tablica musi mieć określony rozmiar podczas
kompilacji, sami musimy napisać obsługę dodawania,
pobierania, kasowania obiektow.
Klasa reprezentująca tablice stworzoną do
przechowywania wszystkich rodzajów obiektow jest
dobrym rozwiązaniem z tego względu, że możemy
jej użyc wielokrotnie - jako obiektu reprezentującego
ekstensje wielu klas. Musimy jedynie pamietac o
rzutowaniu przy pobieraniu obiektów.
Realizacja ekstensji klasy oparta na tablicach
c.d


Obiekt reprezentujący tablice stworzoną do przechowywania obiektów
danego typu nie może być wielokrotnie wykorzystany ale za to nie musimy
pamiętać o rzutowaniu - wystarczy, że raz zakodujemy rzutowanie i więcej
się nie musimy o to martwić.
Pewnym kompromisem wydaje się być możliwość odziedziczenia po klasie
reprezentującej tablice stworzoną do przechowywania wszystkich rodzajów
obiektów i zakodowanie w tej klasie jedynie funkcji realizujacej rzutowanie.
Przykłady:
Ekstensja\Ekstensja na tablicy dedykowanej\...
Ekstensja\Ekstensja na tablicy ogólnej\...
Ekstensja\Ekstensjna tablicy ogólnej z dziedziczeniem\...
Realizacja ekstensji klasy oparta na vektorach


Wydaje się to być rozwiązaniem wolniejszym ale ma
również swoje zalety - nieograniczony rozmiar, nie
musimy pisać obslugi dodawania, pobierania i
kasowania obiektów
Klasa reprezentujaca vektor stworzony do
przechowywania wszystkich rodzajów obiektów jest
lepszym rozwiązaniem z tego wzgledu, że podobnie
jak w przypadku tablicy, możemy go użyć
wielokrotnie - jako obiektu reprezentującego
ekstensje wielu klas. Także musimy pamiętać o
rzutowaniu przy pobieraniu obiektów.
Realizacja ekstensji klasy oparta na vektorach
c.d


Obiekt reprezentujacy vektor stworzony do przechowywania obiektów
danego typu nie może być wielokrotnie wykorzystany ale za to nie
musimy pamiętać o rzutowaniu - wystarczy, że raz zakodujemy
rzutowanie.
Pewnym kompromisem wydaje sie byc możliwosc odziedziczenia po
klasie reprezentujacej vektor stworzony do przechowywania wszystkich
rodzajów obiektów i zakodowanie w tej klasie jedynie funkcji
realizującej rzutowanie
Przykłady:
Ekstensja\Ekstensja na wektorze dedykowanym\...
Ekstensja\Ekstensja na wektorze ogólnym\...
Ekstensja\Ekstensjna na wektorze ogólnym i dziedziczenie\...
Download