Programowanie Obiektowe dr in. Piotr Zabawa IBM/Rational Certified Consultant pzabawa@pk.edu.pl
WYKŁAD 1 Wstp, jzyki, obiektowo
Cele wykładu Zaznajomienie słuchaczy z głównymi cechami obiektowoci Przedstawienie zalet podejcia obiektowego Wprowadzenie uniwersalnego systemu poj Prezentacja technik zwikszajcych zalety podejcia obiektowego Ułatwienie znalezienia i wdroenia si do przyszłej pracy
Róne koncepcje jzyków programowania Istnieje kilka klasyfikacji jzyków programowania: A. Wg paradygmatów B. Wg generacji A. Podana niej klasyfikacja jzyków programowania jest konsekwencj paradygmatów programowania, ale nie jest jednoznaczna.
Róne koncepcje jzyków programowania Klasyfikacja jzyków (wg. paradygmatów): 1. Funkcyjne [brak zmiennych liczne odmiany prostych jzyków skryptowych] 2. Deklaratywne [COBOL,PROLOG,LISP,...] 3. Imperatywne w tym strukturalne [Assemblery,FORTAN,Pascal,C,...] 4. Obiektowe [przykłady] 5. inne Istniej jzyki spełniajce wiele paradygmatów jednoczenie (przykłady).
Róne koncepcje jzyków programowania B. Podana niej klasyfikacja oparta jest na generacjach jzyków programowania. Im nisza generacja tym jzyk bliszy sprztu a co za tym idzie trudniejszy w uyciu przez programist. Interesujce generacje jzyków programowania: 3GL [nazwane zmienne - C++, Java] 4GL [bardzo treciwe i o duej mocy ale o wskich zastosowaniach np. do tworzenia GUI: Visual Basic, Delphi; dostp do danych: SQL] 5GL
Wyróniki obiektowoci O obiektowoci mówimy wtedy, gdy spełnione s nastpujce 4 warunki: 1. Abstrakcja 2. Enkapsulacja 3. Dziedziczenie 4. Polimorfizm
Abstrakcja Jest to uproszczenie polegajce na ograniczeniu dostpu do tych cech obiektu (danych lub metod), które nie s potrzebne do operowania zzewntrz na obiekcie. Jednym ze sposobów realizowania abstrakcji jest ukrywanie obiektu za interfejsem. Wtedy mówimy, e interfejs jest abstrakcj obiektu a obiekt jest realizacj interfejsu. W ogólnym przypadku dany interfejs moe mie wiele rónych realizacji w tym znaczeniu, e interfejs moe by realizowany przez wiele obiektów bdcych instancjami rónych klas.
Enkapsulacja Enkapsulacja zwana te hermetyzacj, kapsułkowaniem albo ukrywaniem polega na ukrywaniu cech obiektu przed dostpem zzewntrz. Enkapsulacja jest nazywana pełn jeli uniemoliwia ona bezporedni dostp do danych obiektu.
Dziedziczenie Jest to nadawanie obiektom bdcym instancjami danej klasy cech wspólnych z obiektami bdcymi instancjami innej klasy lub nadawanie im cech zdefiniowanych przez inn klas. Rozrónienie obu przypadków wprowadzono celowo ze wzgldu na moliwo definiowania klas, dla których nie da si tworzy instancji. Klasy te nazywane s klasami abstrakcyjnymi.
Polimorfizm Moliwo realizacji rónych zachowa danej metody w zalenoci od klasy obiektu, na którym jest realizowana. W praktyce oznacza to, e obiekty rónych klas, na których wykonywana jest ta sama metoda mog zachowywa si w sposób charakterystyczny dla tej klasy, której s one instancj.
Przykład polimorfizmu Klasy Krowa, Pies, Kot maj wspóln metod daj_glos() zdefiniowan te we wspólnej abstrakcyjnej nadklasie Zwierze. Jeli stworzymy list obiektów bdcych instancjami tych klas i dla kadego z tych obiektów odwołamy si do metody daj_glos(), to dla kadego z obiektów zrealizowana zostanie inna funkcjonalno zdefiniowana w klasie definiujcej dany obiekt. Z pojeciem polimorfizmu zwizane s pojcia: dziedziczenie, metoda wirtualna, rzutowanie w góre. Przykład - laboratorium
Cele stworzenia i główne zalety obiektowoci Paradygmat obiektowoci został opracowany po to aby zrealizowa kilka istotnych celów majcych usprawni tworzenie oprogramowania. Oto przykładowe cele: 1. Zwikszenie ponownego uycia (na rónych poziomach) 2. Usprawnienie zarzdzania zmianami 3. Ogarnicie złoonoci oprogramowania 4. Ułatwienie testowania
Dualno pojcia obiektu Zarówno w programowaniu jak i w inynierii oprogramowania jest kilka poj- pułapek (majcych klika definicji). Jednym z nich jest włanie pojcie obiektu. 1. Obiekt jako komponent w rozumieniu UML'a obiekt jest to element oprogramowania umoliwiajcy realizowanie na nim okrelonej przez niego funkcjonalnoci i majcy fizyczn reprezentacj. 2. Obiekt jako instancja klasy obiekt jest to element oprogramowania umoliwiajcy realizowanie na nim okrelonej przez niego funkcjonalnoci i nie majcy swojej fizycznej reprezentacji.
Powysze definicje powstały dla celów tego wykładu. Pod pojciem reprezentacji fizycznej naley rozumie pełn reprezentacj obiektu w formie perzystentnej (np. exe lub dll). Zagadnienie serializacji obiektu w rozumieniu 2 nie stanowi problemu, gdy funkcjonalno zserializowanego obiektu nie moe by uruchomiona bez odpowiedniego kodu zalenego od tego obiektu.