Programowanie Obiektowe
Transkrypt
Programowanie Obiektowe
Programowanie Obiektowe dr in . Piotr Zabawa IBM/Rational Certified Consultant [email protected] WYKŁAD 1 Wst p, j zyki, obiektowo Cele wykładu • Zaznajomienie słuchaczy z głównymi cechami obiektowo ci • Przedstawienie zalet podej cia obiektowego • Wprowadzenie uniwersalnego systemu poj • Prezentacja technik zwi kszaj cych zalety podej cia obiektowego • Ułatwienie znalezienia i wdro enia si do przyszłej pracy Ró ne koncepcje j zyków programowania Istnieje kilka klasyfikacji j zyków programowania: A. Wg paradygmatów B. Wg generacji A. Podana ni ej klasyfikacja j zyków programowania jest konsekwencj paradygmatów programowania, ale nie jest jednoznaczna. Ró ne koncepcje j zyków programowania Klasyfikacja j zyków (wg. paradygmatów): 1. Funkcyjne [brak zmiennych – liczne odmiany prostych j zyków skryptowych] 2. Deklaratywne [COBOL,PROLOG,LISP,...] 3. Imperatywne w tym strukturalne [Assemblery,FORTAN,Pascal,C,...] 4. Obiektowe [przykłady] 5. inne Istniej j zyki spełniaj ce wiele paradygmatów jednocze nie (przykłady). Ró ne koncepcje j zyków programowania B. Podana ni ej klasyfikacja oparta jest na generacjach j zyków programowania. Im ni sza generacja tym j zyk bli szy sprz tu a co za tym idzie trudniejszy w u yciu przez programist . Interesuj ce generacje j zyków programowania: 3GL [nazwane zmienne - C++, Java] 4GL [bardzo tre ciwe i o du ej mocy ale o w skich zastosowaniach – np. do tworzenia GUI: Visual Basic, Delphi; dost p do danych: SQL] 5GL Wyró niki obiektowo ci O obiektowo ci mówimy wtedy, gdy spełnione s nast puj ce 4 warunki: 1. Abstrakcja 2. Enkapsulacja 3. Dziedziczenie 4. Polimorfizm Abstrakcja Jest to uproszczenie polegaj ce na ograniczeniu dost pu do tych cech obiektu (danych lub metod), które nie s potrzebne do operowania zzewn trz 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 mo e mie wiele ró nych realizacji w tym znaczeniu, e interfejs mo e by realizowany przez wiele obiektów b d cych instancjami ró nych klas. Enkapsulacja Enkapsulacja zwana te hermetyzacj , kapsułkowaniem albo ukrywaniem polega na ukrywaniu cech obiektu przed dost pem zzewn trz. Enkapsulacja jest nazywana pełn je li uniemo liwia ona bezpo redni dost p do danych obiektu. Dziedziczenie Jest to nadawanie obiektom b d cym instancjami danej klasy cech wspólnych z obiektami b d cymi instancjami innej klasy lub nadawanie im cech zdefiniowanych przez inn klas . Rozró nienie obu przypadków wprowadzono celowo ze wzgl du na mo liwo definiowania klas, dla których nie da si tworzy instancji. Klasy te nazywane s klasami abstrakcyjnymi. Polimorfizm Mo liwo realizacji ró nych zachowa danej metody w zale no ci 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. Je li stworzymy list obiektów b d cych instancjami tych klas i dla ka dego z tych obiektów odwołamy si do metody daj_glos(), to dla ka dego z obiektów zrealizowana zostanie inna funkcjonalno zdefiniowana w klasie definiuj cej dany obiekt. Z pojeciem polimorfizmu zwi zane s poj cia: dziedziczenie, metoda wirtualna, rzutowanie w góre. Przykład - laboratorium Cele stworzenia i główne zalety obiektowo ci Paradygmat obiektowo ci został opracowany po to aby zrealizowa kilka istotnych celów maj cych usprawni tworzenie oprogramowania. Oto przykładowe cele: 1. Zwi kszenie ponownego u ycia (na ró nych poziomach) 2. Usprawnienie zarz dzania zmianami 3. Ogarni cie zło ono ci oprogramowania 4. Ułatwienie testowania Dualno poj cia obiektu Zarówno w programowaniu jak i w in ynierii oprogramowania jest kilka poj - pułapek (maj cych klika definicji). Jednym z nich jest wła nie poj cie obiektu. 1. Obiekt jako komponent w rozumieniu UML'a – obiekt jest to element oprogramowania umo liwiaj cy realizowanie na nim okre lonej przez niego funkcjonalno ci i maj cy fizyczn reprezentacj . 2. Obiekt jako instancja klasy – obiekt jest to element oprogramowania umo liwiaj cy realizowanie na nim okre lonej przez niego funkcjonalno ci i nie maj cy swojej fizycznej reprezentacji. Powy sze definicje powstały dla celów tego wykładu. Pod poj ciem reprezentacji fizycznej nale y 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 mo e by uruchomiona bez odpowiedniego kodu zale nego od tego obiektu.