Języki programowania obiektowego

Slides:



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

C++ wykład 4 ( ) Przeciążanie operatorów.
Programowanie obiektowe
Deklaracje i definicje klas w C++ Składowe, pola, metody Konstruktory
Klasa listy jednokierunkowej Przekazywanie parametrów do funkcji
Programowanie obiektowe
Standardowa biblioteka języka C++
Programowanie obiektowe
Wzorce.
Static, const, volatile.
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
PROGRAMOWANIE STRUKTURALNE
Implementacja ekstensji klasy
Programowanie obiektowe w Javie
Visual Studio Codename „Orcas”, LINQ
Wielodziedziczenie od środka Konrad Lipiński
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
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.
Dynamiczne struktury danych 1
Tablice jednowymiarowe 1
Stałe i zmienne 1 Definicja Literałem (literal) nazywamy wartość danej jawnie pisaną w programie Przykład Ada.Float_Text_Io.Put ( ); Definicja Stałą
Typy wskaźnikowe ogólne 1 Typy wskaźnikowe ogólne (general access types) umożliwiają pośredni dostęp (indirect access), czyli przez wskaźniki, do zadeklarowanych.
Mechanizmy dziedziczenia
Wstęp do programowania obiektowego
Obiekty dynamiczne Tworzenie klas 3 MPDI Programowanie obiektowe W4.
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Źródła: podręcznikopracował: A. Jędryczkowski.
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
Programowanie obiektowe III rok EiT
Programowanie obiektowe III rok EiT dr inż. Jerzy Kotowski Wykład IX.
Programowanie obiektowe III rok EiT
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Programowanie obiektowe – język C++
Programowanie obiektowe 2013/2014
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ć.
Kurs języka C++ – wykład 3 ( )
Kurs języka C++ – wykład 9 ( )
Programowanie w języku C++
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 5.
Kurs języka C++ – wykład 4 ( )
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.
Paweł Starzyk Obiektowe metody projektowania systemów
Programowanie Zaawansowane
Dziedziczenie Wykład 7 Dziedziczenie sekwencyjne
Wykład 4 Klasa Vec, której konstruktory alokują pamięć dla obiektów 1.Przykład definicji klasy Vec 2.Definicje konstruktorów i destruktora 3.Definicja.
Partnerstwo dla Przyszłości 1 Lekcja 27 Klasy i obiekty.
Wykład 2 Klasa Zesp i jej hermetyzacja 1.Przykład definicji klasy Zesp 2.Zmiana definicji klasy 3.Zmienne i funkcje statyczne PO2-1 / 28.
Partnerstwo dla Przyszłości 1 Lekcja 28 Dziedziczenie i rodzaje dziedziczenia.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Podstawy informatyki Struktury Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Kurs języka C++ – wykład 3 ( )
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
Delegaty Delegat to obiekt „wiedzący”, jak wywołać metodę.
Programowanie Obiektowe – Wykład 2
Object vs. class (rozdzial 13 The NEURON book)
Zapis prezentacji:

Języki programowania obiektowego Klasy i obiekty Andrzej Chybicki Andrzej.Chybicki@eti.pg.gda.pl Pok. 744

Klasy Klasa jest typem zmiennej, jest to typ własny, definiowany przez programistę. Programista sam definiuje co się znajduje w danej klasie (pola i funkcje) Wystąpieniem zmiennej typu klasa nazywany instancją danej klasy lub inaczej obiektem Definiowanie własnych klas-typów sprawia, że program jest bardziej zbliżony do modelowanego problemu, ułatwia programiście pisanie programu i rozwiązywanie zagadnień Struktura programu odpowiada strukturze problemu

Klasy a struktury Struktura jest klasą w której wszystkie pola i funkcje (ang. members) są jawne (public)

Dostęp do zmiennych klasy Public members Private members

Defining a member function

Konstruktory Aby utworzyć instancje danej klasy (obiekt) należy zainicjować zmienną typu klasa. Konstruktor jest jawną funkcją danej klasy inicjującą w odpowiedni sposób pola danej klasy Konstruktor zawsze jest jawny Konstruktor nie jest niczym innym jak zwyklą funkcją (zawsze jawną) danej klasy zwracającą obiekt typu klasy w jakiej jest zaimplementowany

Sposoby inicjalizacji obiektu

I jeszcze trochę o konstruktorach W praktyce warto definiować więcej niż jeden konstruktor danej klasy Ułatwia to inicjalizacje obiektów Tworzy klasy wszechstronniejszymi Przyśpiesza programowanie

Przykład

Możliwe wywołania

Zmienne statyczne Zmienna statyczna ma dokładnie jedno wystąpienie w całym programie ( w przeciwieństwie do zmiennej zwykłej, która ma każdą kopię dla danego obiektu) Zmienna statyczna jest deklarowana w ciele klasy i jest własnością klasy – NIE OBIEKTU!! Zmienne statyczne „zastępują” w programowaniu obiektowym zmienne globalne Aby skorzystać ze zmiennej statycznej nie trzeba inicjować obiektu danej klasy w której ta zmienna jest zadeklarowana

Funkcje Constant

Funkcje Const (Constant member functions) Nie zmieniają zmiennych na których operują Służą do odczytywania zmiennych z obiektu zapewniając ich niezmienność podczas odczytywania

Destruktory Konstruktor inicjuje obiekt, stwarza dla niego środowisko pracy zapewniając zasoby niezbędne do dzialania obiektu. Obiekty niektórych klas mogą wymagać stosunkowo dużej ilości pamięci (i nie tylko pamięci) niezbędnej dla dzialania obietku. Np. Dane przestrzenne, dane z baz danych itp… Gdy obiekt przestaje być potrzeby należy te zasoby zwolnić

Destruktory – ciąg dalszy Destruktory są funkcjami należącymi do danej klasy, które „niszczą” obiekt, zwalniając tym samym zasoby przez niego używane. Destruktory są często używane niejawnie kiedy obiekt przestaje być w programie użyteczny Tylko w nielicznych przypadkach programista zmuszony jest wywolywać destruktory bezpośrednio.

Przykład użycia desktruktora Klasa Table podczas inicjacji alokuje pamięć potrzebną do przetrzymywania „swoich” elementów W samej klasie Table trzymany jest jedynie wskaźnik do miejsca w którym same dane są przechowywane Podczas gdy obiekt staje się nam niepotrzebny chcemy tę pamięć zwolnić

Desktruktory - przyklad Podczas gdy obiekt staje się nam niepotrzebny chcemy mieć pewność ze zasoby pamięcia z których korzysta Table są też „uwolnione”. Desktruktory mają taką samą jak konstruktor poprzedzony znakiem „~” Używanie techniki desktruktorów jest szczególnie ważne w przypadku operowania na dużej ilości danych

Przypadki konstruowania i dekonstruowania obiektów w C++ A named automatic object, which is created each time its declaration is encountered in the execution of the program and destroyed each time the program exits the block in which it occurs A freestore object, which is created using the n e w operator and destroyed using the d e l e t e operator A nonstatic member object, which is created as a member of another class object and created and destroyed when the object of which it is a member is created and destroyed An array element, which is created and destroyed when the array of which it is an element is created and destroyed A local static object, which is created the first time its declaration is encountered in the execution of the program and destroyed once at the termination of the program A global, namespace, or class static object, which is created once ‘‘at the start of the program’’ and destroyed once at the termination of the program A temporary object, which is created as part of the evaluation of an expression and destroyed at the end of the full expression in which it occurs This list is roughly sorted in order of importance. The following subsections explain these various ways of creating objects and their uses.