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.

Podobne dokumenty