Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Języki programowania obiektowego Andrzej Chybicki Pok. 744 Klasy i obiekty.

Podobne prezentacje


Prezentacja na temat: "Języki programowania obiektowego Andrzej Chybicki Pok. 744 Klasy i obiekty."— Zapis prezentacji:

1 Języki programowania obiektowego Andrzej Chybicki Pok. 744 Klasy i obiekty

2 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

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

4

5

6 Dostęp do zmiennych klasy Public members Private members

7

8 Defining a member function

9 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

10 Sposoby inicjalizacji obiektu

11 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

12 Przykład

13 Możliwe wywołania

14 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

15

16 Funkcje Constant

17 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

18

19 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ć

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

21 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ć

22

23 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

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


Pobierz ppt "Języki programowania obiektowego Andrzej Chybicki Pok. 744 Klasy i obiekty."

Podobne prezentacje


Reklamy Google