Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie ObiektoweWstęp1 PLAN Wstęp –Idee programowania obiektowego Smalltalk (Alan Kay, Xerox, Palo Alto) –dlaczego tak przykład języka w pełni obiektowego.

Podobne prezentacje


Prezentacja na temat: "Programowanie ObiektoweWstęp1 PLAN Wstęp –Idee programowania obiektowego Smalltalk (Alan Kay, Xerox, Palo Alto) –dlaczego tak przykład języka w pełni obiektowego."— Zapis prezentacji:

1 Programowanie ObiektoweWstęp1 PLAN Wstęp –Idee programowania obiektowego Smalltalk (Alan Kay, Xerox, Palo Alto) –dlaczego tak przykład języka w pełni obiektowego łatwość obiektowego projektowania i programowania duża biblioteka gotowych klas Elementy analizy i projektowania obiektowego C++ (Bjarne Stroustrup, Bell Laboratories, AT&T) –dlaczego tak praktycznie i szeroko używany język obiektowy –wada obiektowość ginie w składni i niskopoziomowości języka C Inne języki obiektowe Java, Eiffel, Objective C,...

2 Programowanie ObiektoweWstęp2 Literatura 1. Peter Coad, Jill Nicola, Programowanie Obiektowe, Prentice Hall 1992 (README 1993) 2. Peter Coad, Edward Yourdon, Analiza Obiektowa, Prentice Hall 1991 (README 1994) 3. Peter Coad, Edward Yourdon, Projektowanie Obiektowe, Prentice Hall 1991 (README 1994) 4. David A. Taylor, Technika obiektowa, Addison - Wesley, 1990 (Helion, 1994) 5. James Martin, James Odell, Podstawy metod obiektowych, Prentice Hall 1994 (WNT 1998) 6. R. Dumnicki, A. Kasprzyk, M.. Kozłowski, Analiza i projektowanie obiektowe, Helion Grady Booch, Object - Oriented Design with Applications, James Rumbaough i in., Object_Oriented Modelling and Design, Ian Graham, Object-Oriented Methods, Adele Goldberg, David Robson, Smalltalk-80, Addison-Wesley, Digitalk, Smalltalk/V for Windows, Digitalk Inc Wilf LaLonde, John Pugh, Inside Smalltalk, Prentice Hall, 1990

3 Programowanie ObiektoweWstęp3 13. Bjarne Stroustrup, Język C++, WNT, 1994 wiele innych książek o C Kernighan, Ritchie, Język ANSI C, WNT Lemay, Perkins, Java 1.1, Helion Jan Bielecki, Java po C++, Jan Bielecki, Java od podstaw, 1996 wiele innych książek o Javie 20. Gerald Massini,..... Object Oriented Languages, Academic Press, 1991

4 Programowanie ObiektoweWstęp4 HISTORIA Algol-60 Pascal Modula 2 Simula-67 Loglan Java C C++ Ada Simula-67:lata 60-te Smalltalk:lata 70-te, rozwój w latach 90-tych Loglan:lata 70/80 Ada:początek lat 80 C++:początek lat 80-tych Java:połowa lat 90-tych popularność programowania obiektowego: lata 90 inne języki hybrydowe Smalltalk

5 Programowanie ObiektoweWstęp5 OBIEKT atrybuty akcje atrybuty akcje PROGRAM Programowanie modularne: Program = algorytmy + struktury danych Programowanie obiektowe: Program = zbiór obiektów komunikujących się poprzez komunikaty modelowanie systemu jeden model może być użyty do wielu zadań k1 k3 k2 k4 k5 k6 atrybuty: zmienne określające stan obiektu (ukryte) akcje: operacje, jakie obiekt może wykonywać na swoich atrybutach komunikat: polecenie wykonania akcji i zwrócenia wyniku

6 Programowanie ObiektoweWstęp6 Pascal type prostokąt = record x1, y1, x2, y2 : real end; var p, q : prostokąt; funkction przecina (p, q : prostokąt):boolean; begin if przecina (p, q ) then..... Programowanie obiektowe przecina P... P przecina: Q...Smalltalk... P -> przecina (Q)C++... P.przecina (Q)C++ lub Java Nie wykonujemy operacji na atrybutach obiektów: Każemy obiektom samym wykonywać akcje przecina: Q przecina Q

7 Programowanie ObiektoweWstęp7 Stosy Klasa Stos: jakaś impementacja stosu operacje pop, push, topelem, empty S - obiekt klasy Stos pop push : elem S := Stos new S push: elem.... S. pop....

8 Programowanie ObiektoweWstęp8 Klasy i obiekty Klasa = wzorzec dla obiektów, typ obiektów określa atrybuty (nazwy, rodzaj, typy) obiektów i akcje, jakie są dopuszczalne w obiekcie tej klasy. imię nazwisko adres wypisz swoje dane Człowiek Jan Nowak Warszawa Jan Nowak Warszawa Anna Kwas Toruń Anna Kwas Toruń Tomasz Wnuk Warszawa Tomasz Wnuk Warszawa Obiekt dowolnej klasy wypisz swoje dane

9 Programowanie ObiektoweWstęp9 Dziedziczenie NadklasaPodklasa GeneralizacjaSpecjalizacja wielokąt czworokąt prostokąt kwadrat równoległobok sześciokąt trójkąt figura okrąg Podklasa jest pewną specjalizacja nadklasy " kwadrat jest prostokątem" "prostokąt jest figurą" "okrąg jest figurą" "równoległobok jest wielokątem"

10 Programowanie ObiektoweWstęp10 Metody obiektowe Modelowanie dziedziny problemu poprzez znalezienie jej najważniejszych komponentów - obiektów, ich własności, zachowania i wzajemnej współpracy. Obiekt Abstrakcja czegoś z dziedziny problemu, odzwierciedlająca zdolności systemu do przechowywania informacji o tym, interakcji z tym czymś; kapsułka z wartościami atrybutów i wyłącznie na nich działającymi operacjami. Obiekt ma tożsamość Klasa Zbiór obiektów, które mają takie same właściwości (atrybuty) i zachowanie (metody). Wzorzec dla obiektów. Typ obiektów. Wykonując model dziedziny problemu (świata rzeczywistego) posługujemy się klasami, jako pojęciem meta w stosunku do obiektu. Abstrakcja Uproszczony opis (specyfikacja) obiektu ignorujący te jego aspekty, które nie są ważne z punktu widzenia bieżącego celu. Hermetyzacja Proces ukrywania tych elementów abstrakcji (obiektu), które implementują jego strukturę i zachowanie; hermetyzacja służy do rozdzielenia interfejsu widocznego z zewnątrz od wewnętrznych sekretów realizacji. Dziedziczenie Relacja między klasami mówiąca o tynm, że dana klasa (podklasa) współdzieli strukturę i zachowanie zdefiniowane w jednej lub wielu klasach (nadklasach). Podklasa najczęściej jest specjalizacją swojej nadklasy poprzez doprecyzowanie lub rozszerzenie odziedziczonej sytuktury i zachowania. B jest podklasą A B jest rodzajem A

11 Programowanie ObiektoweWstęp11 Jakość Oprogramowania Poprawność (correctness) program ma robić dokładnie (i poprawnie) to, co zostało zdefiniowane w specyfikacji Odporność (robustness) program ma zachowywać się sensownie w każdej (nawet nieprzewidzianej) sytuacji Modyfikowalność i rozszerzalność program musi być łatwo dostosowywalny do zmian w specyfikacji Możliwość wielokrotnego użycia elementów projektu i programu (reusability) typowe fragmenty programu muszą dać się łatwo użyć w innych programach lub w tym samym programie Kompatybilność Efektywność Przenaszalność

12 Programowanie ObiektoweWstęp12 Jak osiągnąć cele jakości oprogramowania? Modularność, programowanie strulturalne, wielokrotny użytek procedur –Pascal, Modula 2, C Wielokrotny użytek całych struktur danych, ochrona danych –Modula 2 Wielokrotny użytek struktutur danych i obiektów, hermetyzacja (encapsulation) poprzez klasy i dziedziczenie –języki obiektowe Użycie metodologii obiektowej (od analizy, poprzez projekt do programu): –przyspiesza proces tworzenia systemu poprzez wielokrotne użycie elementów –ułatwia modyfikowalność i rozszerzalność –pozwala szybko stworzyć prototyp

13 Programowanie ObiektoweWstęp13 ?? narysuj figura klasa abstrakcyjna - nie może być obiektów dokładnie tej klasy lista wierzchołków narysuj ile wierzchołków środek ile wierzchołków wielokąt kwadrat nowy atrybut - lista wierzchołków przedefiniowuje operację narysuj nowa operacja - ile wierzchołków dziedziczy listę wierzchołków dziedziczy operację narysuj przedefiniowuje ile wierzchołków nowa operacja - środek środek promień narysuj okrąg nowe atrybuty - środek i promień przedefiniowuje operację narysuj ? ? narysuj wykonywana jest odpowiedznia operacja narysuj, w zależności od klasy obiektu Polimorfizm: możliwość różnych realizacji w różnych klasach operacji tak samo nazwanej

14 Programowanie ObiektoweWstęp14 Realizacja polimorfizmu Odbieranie komunikatu Hierarchia dziedziczenia klas klasa A klasa Bklasa C klasa Dklasa E kierunek wyszukiwania metody (operacji) Na zmiennej x przechowywany jest obiekt klasy E. komunikat x akcja powoduje wyszukiwanie metody akcja kolejno w klasach E, C, A i wykonanie pierwszej znalezionej metody (jeśli jej nie ma, to błąd) Na zmiennej x jest obiekt klasy Kwadrat: x narysujwykonanie metody z klasy Wielokąt Na zmiennej x jest obiekt klasy Okrąg: x narysujwykonanie metody z klasy Okrąg

15 Programowanie ObiektoweWstęp15 Charakteryzacja programowania obiektowego Programowanie z obiektami Obiekty jako typy danych, ukrywające swój stan, ale potrafiące wykonywać na nim operacje. Programowanie przez symulację Programujemy aplikacje używając symulacji lub animacji. Obiekty modelują świat rzeczywisty. To jest styl nazywany programowaniem przez personifikację. Obliczenia przeprowadzane poprzez przesyłanie komunikatów Działanie obiektu w odpowiedzi na komunikat są określone przez metody. Użycie polimorfizmu (wirtualizacja) komunikaty są różnie interpretowane, zależnie od odbiorcy. Dziedziczenie nowe klasy są definiowane jako specjalizacje klas już istniejących. Używanie bogatej biblioteki klas wielokrotnego użytku


Pobierz ppt "Programowanie ObiektoweWstęp1 PLAN Wstęp –Idee programowania obiektowego Smalltalk (Alan Kay, Xerox, Palo Alto) –dlaczego tak przykład języka w pełni obiektowego."

Podobne prezentacje


Reklamy Google