PO Typy uogólnione: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Janusz (dyskusja | edycje)
Nie podano opisu zmian
Janusz (dyskusja | edycje)
Nie podano opisu zmian
Linia 2: Linia 2:


(moduł w trakcie pisania)
(moduł w trakcie pisania)
(wymagania wstępne:
reguła podstawiania (dziedziczenie)
typy referencyjne


= Typy uogólnione =
= Typy uogólnione =
Linia 20: Linia 24:
czynnościami (co pozwalają nam osiągnąć metody),
czynnościami (co pozwalają nam osiągnąć metody),
lecz także ''typami'' obiektów przechowywanych
lecz także ''typami'' obiektów przechowywanych
i przetwarzanych przez klasy.
lub przetwarzanych przez klasy.


Na pierwszy rzut oka może się wydawać, że sam fakt
dysponowania mechanizmem dziedziczenia i regułą
podstawiania pozwala na abstrahowanie do typu
przetwarzanych obiektów. Rzeczywiście możemy
zadeklarować, że dane przechowywane w naszej
klasie są typu Object i dzięki regule
podstawiania umieszczać w tak zedeklarowanych
atrybutach wartości dowolnego typu referencyjnego
(ze względu na specyfikę Javy musimy ograniczyć
się tu tylko do typów referencyjnych





Wersja z 00:40, 6 sie 2006

<<< Powrót

(moduł w trakcie pisania)

(wymagania wstępne:

reguła podstawiania (dziedziczenie)
typy referencyjne 

Typy uogólnione

Wprowadzenie

Siłą programowania obiektowego jest łatwość opisywania w nim i tworzenia abstrakcji. Pojęcie klasy pozwala tworzyć abstrakcje, zaś mechanizm dziedziczenia ułatwia tworzenie nowych abstrakcji na podstawie już istniejących.

Czasami jednak okazuje się, że te narzędzia nie zaspokajają jeszcze wszystkich naszych potrzeb. Niejednokrotnie tworzymy pojęcia, które chcielibyśmy nie tylko sparametryzować występującymi w nich wartościami (co czynimy wprowadzając do klas atrybuty), czy czynnościami (co pozwalają nam osiągnąć metody), lecz także typami obiektów przechowywanych lub przetwarzanych przez klasy.

Na pierwszy rzut oka może się wydawać, że sam fakt dysponowania mechanizmem dziedziczenia i regułą podstawiania pozwala na abstrahowanie do typu przetwarzanych obiektów. Rzeczywiście możemy zadeklarować, że dane przechowywane w naszej klasie są typu Object i dzięki regule podstawiania umieszczać w tak zedeklarowanych atrybutach wartości dowolnego typu referencyjnego (ze względu na specyfikę Javy musimy ograniczyć się tu tylko do typów referencyjnych


Klasy parametryzowane typami

Metody parametryzowane typami

Ograniczenia typów uogólnionych w Javie