150 likes | 257 Views
Programowanie obiektowe. Object - oriented programming. Tradycyjne podejście do programowania, zwane programowaniem proceduralnym charakteryzuje się rozdzieleniem danych od operujących na nich funkcji.
E N D
Programowanie obiektowe Object - oriented programming
Tradycyjne podejście do programowania, zwane programowaniem proceduralnym charakteryzuje się rozdzieleniem danych od operujących na nich funkcji. Odizolowanie danych od kodu może prowadzić do przypadkowych zmian danych przez funkcje, które nie są z nimi logicznie związane. Ponadto modyfikacja programu napisanego w ten sposób jest trudniejsza do realizacji, gdyż nawet niewielka zmiana działania programu może spowodować konieczność wprowadzenia poprawek w wielu miejscach. Takich wad pozbawione jest programowanie obiektowe, będące po programowaniu strukturalnym kolejnym etapem w rozwoju języków programowania.
Programowanie obiektowe jest stylem programowania, w którym do tworzenia programów używa się obiektów. obiekt = dane + metody Styl taki powstał w wyniku postrzegania rzeczywistości jako zbioru obiektów różnego typu, które mogą wykonywać określone czynności, potrafią się ze sobą komunikować i na siebie wzajemnie oddziaływać. Obiekty w programie często odzwierciedlają cechy i umiejętności swoich odpowiedników ze świata rzeczywistego.
Język obiektowy -powinien posiadać 4 właściwości: • Hermetyzacja danych (enkapsulacja) • Abstrakcja danych • Dziedziczenie • Polimorfizm
Hermetyzacja danych Jest to proces umiejscawiania definicji danych poprzez ich ukrywania wewnątrz obiektu i udostępnianie ich przez specjalne funkcje zwane metodami. Hermetyzacja umożliwia zapewnienie bezpieczeństwa danych, obsługę błędów i weryfikację poprawności danych.
Abstrakcja danych Jest to proces grupowania cech i czynności związanych z określonym „bytem”. Wspólne cechy (atrybuty) tworzą jednostkę logiczną - klasę. Klasa jest miejscem przechowywania takich informacji - dotyczących obiektów - które są dla nich niezmienne, wspólne. Obiekt jest instancją (egzemplarzem) klasy.
Klasy i obiekty Class Object • A class is a template or blueprint that defines an object’s attributes and operations and that is created at design time • An object is a running instance of a class that consumes memory and has a finite lifespan 12 123 245 245
Porównaj Sprawdź podpis stan Nalicz Zlikwiduj procent konto Zmień upoważnienie Obiekt KONTO Wypłać Wpłać Metody Numer 123-456 Właściwości Właściciel Jan Kowalski Upoważniony Ewa Kowalska SaldoZł 2500 Upoważnij
PRACOWNIK PRACOWNIK PRACOWNIK Nazwisko Kowal Nazwisko Nowak Nazwisko Babel Zarobek 1500 Zarobek 2500 Zarobek 2000 PracujeW PracujeW PracujeW Zatrudnia Zatrudnia Zatrudnia Nazwa Syntex Szef NrFirmy 102030 FIRMA Powiązania pomiędzy obiektami Dzięki istnieniu unikalnych identyfikatorów obiektów w obiektowych językach programowania i bazach danych możliwe jest tworzenie bezpośrednich powiązań między obiektami.
Dziedziczenie Jest to proces tworzenia bardziej szcze-gółowego typu danych na podstawie ogólnej klasy. Dziedziczenie opisuje się za pomocą hierarchii „to_jest” (is_a)
Przykład Dziedziczenia Z figury bazowej, powstają różne inne konkretne figury. narysuj() usuń() przesuń() Figura Klasa podstawowa, macierzysta. Nadklasa. Trójkąt Klasy potomne. Podklasy. Wyprowadzenia klas. Okrąg Kwadrat
obiekt obiekt obiekt obiekt obiekt obiekt obiekt obiekt obiekt Przykład dziedziczenia klas OSOBA Nazwisko Imię RokUrodz Wiek() STUDENT NrIndeksu RokStudiów Wydział WstawOcenę(...) ZaliczSemestr() PRACOWNIK Zarobek Firma Zdjęcie ZarobekNetto() ZmieńZarobek(...)
POJAZD ciężar ..... prędkość_eksploat() POJAZD_WODNY wyporność max_prędkość ..... POJAZD_LĄDOWY ilość_kół max_prędkość ..... AMFIBIA ŻAGLÓWKA JACHT SAMOCHÓD TRAKTOR Dziedziczenie wielokrotne Jest to dziedziczenie z kilku klas, połączone z sumowaniem dziedziczonych cech
Polimorfizm Jest to proces udostępniania właści-wości o jednakowej nazwie kilku klasom, nawet, jeżeli są one inaczej wykorzystane w tych klasach. Polimorfizm wynika m.in. stąd, że progra-miści współpracujący ze sobą nadają podobne nazwy metodom realizującym podobne zadania.
Metody dochody są różne dla każdej klasy. Po otrzymaniu komunikatu dochody wybierana jest metoda właściwa dla klasy, do której należy dany obiekt. Polimorfizm wymaga dynamicznego wiązania. Przesłanianie jest jedną z jego form. Polimorfizm stwarza znaczny potencjał dla ponownego użycia i modyfikowalności oprogramowania. STUDENT .... dochody() .... PRACOWNIK .... dochody() .... EMERYT .... dochody() .... Polimorfizm OSOBA nazwisko kategoria .... .... obiekt obiekt obiekt obiekt obiekt obiekt