90 likes | 322 Views
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
E N D
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
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 Polimorfizm metod
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\...