Programowanie obiektowe W1 Wprowadzenie

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

Programowanie obiektowe
Kurs języka C++ Paweł Rzechonek Instytut Informatyki
C++ Paweł Rzechonek Instytut Informatyki Uniwersytetu Wrocławskiego
Programowanie obiektowe
Programowanie obiektowe
Wzorce.
Wprowadzenie.
Zaawansowane metody programowania – Wykład V
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Wprowadzenie do C++ Zajęcia 2.
Programowanie w środowisku sieciowym
Programowanie obiektowe w Javie
Kurs Pascala – spis treści
Dziedziczenie i jego rodzaje
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład II
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
Programowanie obiektowe III rok EiT
Podstawy programowania
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Źródła: podręcznikopracował: A. Jędryczkowski.
Opracował : Przemysław Drzymała
Programowanie strukturalne i obiektowe
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Mechanizm OLE ang. Object Linking and Embedding źródła:
Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład VIII.
Programowanie obiektowe III rok EiT
WPROWADZENIE W ŚWIAT OBIEKTÓW
Java – coś na temat Klas Piotr Rosik
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
JAVA.
Wykonał: Michał Nikołajuk
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Warsztaty C# Część 6 Grzegorz Piotrowski Grupa .NET PO
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
Systemy zarządzania treścią Wykład 5
PWSZ Gniezno // codefly 2009
Prasek Aneta, Skiba Katarzyna. Funkcje stałe const to takie funkcje, które nie mogą modyfikować stanu obiektu. Oznacza to, że funkcja stała nie może zmieniać.
Programowanie w języku C++
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
K URS JĘZYKA C++ – WYKŁAD 2 ( ) Klasy i obiekty.
Klasy ( uzupełnienie ). Definicja klasy Klasa jest zbiorem logicznie powiązanych danych i funkcji, przeznaczonych do realizacji konkretnego zadania; Zamknięcie.
Programowanie obiektowe
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Platforma .Net.
Programowanie Zaawansowane
Podstawy programowania
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
Visual Basic przygotował Michał Miłek Visual Basic – język programowania wysokiego poziomu i narzędzie programistyczne firmy Microsoft. Składnia jest oparta.
Programowanie Obiektowe – Wykład 6
Kurs języka C++ – organizacja zajęć ( )
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
Programowanie Obiektowe – Wykład 2
Wprowadzenie do programowania obiektowego
Podstawy programowania
Założenia projektowe Javy
PGO Dziedziczenie Michail Mokkas.
Programowanie w Javie 1 Dr Robert Kowalczyk
Zapis prezentacji:

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

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.

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 2010 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.

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)

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

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 http://www.cplusplus.com/doc/tutorial/

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.

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.

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

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.

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.

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.

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

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.

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.

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.

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++).

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