Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie obiektowe W1 Wprowadzenie

Podobne prezentacje


Prezentacja na temat: "Programowanie obiektowe W1 Wprowadzenie"— Zapis prezentacji:

1 Programowanie obiektowe W1 Wprowadzenie
Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki

2 Ogólna charakterystyka języka C++
C++ jest obiektowym językiem programowania, łączy właściwości języków niskiego i wysokiego poziomu Został „nadbudowany” nad językiem C, opracowanym przez B. Kernighana i D. Ritchiego C++ zaprojektowany przez Bjærne Stroustrupa jako rozszerzenie języka ANSI C o obiektowe mechanizmy abstrakcji danych i silną statyczną kontrolę typów. Zachowanie zgodności z językiem C na poziomie kodu źródłowego pozostaje jednym z podstawowych celów projektowych kolejnych standardów języka, ale nie zawsze jest spełniony.

3 Najpopularniejsze kompilatory (płatne)
Microsoft Visual Studio – to zintegrowane środowisko programistyczne firmy Microsoft. Jest używane do tworzenia oprogramowania konsolowego oraz z graficznym interfejsem użytkownika, Borland C++ Builder – narzędzie programistyczne typu RAD firmy Borland do tworzenia aplikacji w języku C++. W Pracowni ZMAiO dostępne jest środowisko RAD Studio Embarcadero® - jest potężnym pakietem programistycznych umożliwiającym wizualne tworzenie aplikacji z interfejsem GUI oraz aplikacji bazodanowych dla platformy Windows oraz .NET. RAD Studio zawiera środowiska Delphi, C++Builder.

4 Nowe cechy języka C++ względem języka ANSI C
Możliwość programowania obiektowego: Klasy, jako rozszerzenie struktury o funkcje składowe, enkapsulację, dziedziczenie i polimorfizm Obiekty, będące instancjami klas Metody wirtualne dostarczające polimorfizm Konstruktory i destruktory, Operatory new i delete Słowo kluczowe this (dostęp do obiektu, na rzecz którego wołana jest metoda) Wskaźniki do składowych klas (pól i metod)

5 Nowe cechy języka C++ względem języka ANSI C - c.d.
Obsługa wyjątków: Deklaracja wychwytywania wyjątków: try ... catch Deklaracja wywoływania wyjątku: throw Zmiany natury ogólnej: Przestrzenie nazw i operator zasięgu :: Referencje Przeciążanie funkcji Przeciążanie operatorów Szablony (wzorce) klas i funkcji

6 Literatura: Jerzy Grebosz, Symfonia C++, Oficyna Kallimach, Kraków 1996, t.1-3. Jerzy Grebosz, Pasja C++, Oficyna Kallimach, Kraków 1996, t.1-2. Stephen Prata, Język C++. Szkoła programowania. Wydanie V, Helion 2011 Bjarne Stroustrup, Programowanie. Teoria i praktyka z wykorzystaniem C++, Helion 2010 Andrzej Stasiewicz, C++. Ćwiczenia praktyczne. Wydanie III, Helion 2011

7 Założenia paradygmatu obiektowego
Programowanie obiektowe (ang. object-oriented programming) to: paradygmat programowania, w którym programy definiuje się za pomocą obiektów — elementów łączących stan (czyli dane, nazywane najczęściej polami) i zachowanie (czyli metody które są procedurami/funkcjami operującymi na tych danych). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań. Podejście to różni się od tradycyjnego programowania proceduralnego, gdzie dane i procedury nie są ze sobą bezpośrednio związane. Programowanie obiektowe ma ułatwić pisanie, konserwację i wielokrotne użycie programów lub ich fragmentów.

8 Założenia paradygmatu obiektowego
Obiekt (zmienna obiektowa) jest tzw. INSTANCJĄ klasy. Jest częścią programu i wykonuje ścisłe określone zadania. Programowanie oparte na klasach Klasa to typ obiektowy składający się z pól i metod. Definiowane są klasy, czyli typy zmiennych, a następnie tworzone są obiekty, czyli zmienne (w uproszczeniu) tych typów. Pole to zmienna która należy do klasy. Wartości pól należy modyfikować przez metody danej klasy. Metoda to procedura lub funkcja która należy do klasy i wykonuje operacje na wartościach pól.

9 Założenia paradygmatu obiektowego – c.d.
Powszechnie uważa się, że język programowania jest obiektowy jeżeli posiada następujące cechy: Hermetyzacja/Enkapsulacja To cecha polegająca na ukrywaniu szczegółów implementacji. Zapewnia, że obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób. Tylko wewnętrzne metody obiektu są uprawnione do zmiany jego stanu. Definiując klasę stosuje się różne poziomy dostępu: public private protected

10 Założenia paradygmatu obiektowego – c.d.
2. Polimorfizm /Wielopostaciowość Mechanizm zezwalający na nadawanie w hierarchii klas tych samych nazw metodom o podobnym zastosowaniu. Wywołanie metody spowoduje zachowanie odpowiednie dla typu obiektu wywoływanego. Jeśli dzieje się to w czasie działania programu, to nazywa się to późnym wiązaniem lub wiązaniem dynamicznym.

11 Założenia paradygmatu obiektowego – c.d.
Dziedziczenie Dziedziczenie to mechanizm budowania klas na podstawie klas już zdefiniowanych. Klasa pochodna dziedziczy składowe od przodka – klasy bazowej. Dziedziczenie porządkuje i wspomaga polimorfizm i enkapsulację dzięki umożliwieniu definiowania i tworzenia specjalizowanych obiektów na podstawie obiektów bardziej ogólnych.

12 Założenia paradygmatu obiektowego – c.d.
Abstrakcja Abstrakcją w programowaniu nazywamy pewnego rodzaju uproszczenie rozpatrywanego problemu, polegające na ograniczeniu zakresu cech obiektów wyłącznie do cech kluczowych dla algorytmu. Każdy obiekt w systemie służy jako model abstrakcyjnego „wykonawcy”, który może wykonywać pracę, opisywać i zmieniać swój stan oraz komunikować się z innymi obiektami w systemie, bez ujawniania, w jaki sposób zaimplementowano dane cechy.

13 Podział Można wyróżnić dwa zasadnicze podtypy programowania obiektowego: Programowanie oparte na klasach Definiowane są klasy, czyli typy zmiennych, a następnie tworzone są obiekty, czyli zmienne tych typów. Programowanie oparte na prototypach W tym podejściu nie istnieje pojęcie klasy. Nowe obiekty tworzy się w oparciu o istniejący już obiekt - prototyp, po którym dziedziczone są pola i metody i można go rozszerzać o nowe. Spotykany raczej w językach interpretowanych

14 Historia programowania obiektowego
Obiektowy język programowania to taki, który umożliwia lub zachęca do stosowania obiektowych metod programowania. Pierwszy język obiektowy – Simula 67 – powstał już w latach sześćdziesiątych ubiegłego stulecia. Jego twórcami byli: Ole-Johan Dahl i Kristen Nygaard z Norsk Regnesentral w Oslo (prace nad symulacją statków). Simula była pierwszym językiem programowania, w którym wprowadzono pojęcie klasy i jej egzemplarza. Koncepcja została dopracowana w języku Smalltalk. Smalltalk jest czysto obiektowym językiem programowania z dynamicznym typowaniem. Umożliwia to w praktyce zupełnie inny sposób programowania od tego, do jakiego są przyzwyczajeni programiści używający języków obiektowych rozwiniętych z języków proceduralnych takich jak C, czy Pascal.

15 Historia programowania obiektowego – c.d.
Programowanie obiektowe zyskało status techniki dominującej w połowie lat 80., głównie ze względu na wpływ C++, stanowiącego rozszerzenie języka C. Dominacja C++ została utrwalona przez wzrost popularności graficznych interfejsów użytkownika, do tworzenia których programowanie obiektowe nadaje się szczególnie dobrze. W tym okresie cechy obiektowe dodano do wielu języków programowania, w tym Ady, BASIC-a, Lispa, Pascala i innych.

16 Historia programowania obiektowego – c.d.
Dodanie obiektowości do języków, które pierwotnie nie były do niej przystosowane zrodziło szereg problemów z kompatybilnością i konserwacją kodu. Podejmowano liczne próby stworzenia nowych języków obiektowych. Eiffel stworzony przez Bertranda Meyera był wczesnym przykładem w miarę udanego języka spełniającego te założenia; Obiektowość rozprzestrzeniła się dość znacznie, jednak zwykle w systemach hybrydowych, w połączeniu z programowaniem funkcyjnym (Ocaml, niektóre dialekty Lispa), sieciowym (Java), skryptowym (Perl, Python, Ruby) itd. Systemy czysto obiektowe typu Smalltalk nie znalazły zbyt szerokiego zastosowania.

17 Typy danych C/C++ Typy danych w języku C/C++ można podzielić na :
typy proste typy strukturalne Typy proste są niepodzielne i wykorzystuje się je do tworzenia typów strukturalnych. Do typów prostych języka C++ zaliczamy arytmetyczne: całkowite i rzeczywiste; wyróżniamy wśród nich: typy fundamentalne typy pochodne (kombinacje typów fundamentalnych) wskaźnikowe, referencyjne ( C++).

18 Typy danych C/C++ Do typów strukturalnych (złożonych) w C/ C++ zaliczamy tablice, struktury , unie, klasy ( C++)


Pobierz ppt "Programowanie obiektowe W1 Wprowadzenie"

Podobne prezentacje


Reklamy Google