Docsity
Docsity

Przygotuj się do egzaminów
Przygotuj się do egzaminów

Studiuj dzięki licznym zasobom udostępnionym na Docsity


Otrzymaj punkty, aby pobrać
Otrzymaj punkty, aby pobrać

Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium


Informacje i wskazówki
Informacje i wskazówki

Programowanie obiektowe, Streszczenia z Programowanie obiektowe

Cechy programowania obiektowego ... Języki programowania z cechami obiektowości to m.in. ... metody, czyli funkcje służące do wykonywania na tych danych.

Typologia: Streszczenia

2022/2023

Załadowany 24.02.2023

Ania870
Ania870 🇵🇱

4.5

(30)

111 dokumenty

Podgląd częściowego tekstu

Pobierz Programowanie obiektowe i więcej Streszczenia w PDF z Programowanie obiektowe tylko na Docsity! Wstęp do programowania obiektowego Wykład 2 1 CECHY I KONCEPCJA PROGRAMOWANIA OBIEKTOWEGO 2 Koncepcja programowania obiektowego  Otaczający nas świat to różnego rodzaju przedmioty.  Tworząc program komputerowy dokonujemy pewnego ich odwzorowania.  W programowaniu proceduralnym funkcje i zmienne dotyczące danego przedmiotu nie są ze sobą logicznie powiązane.  W programowaniu obiektowym dokonuje się powiązania metod (funkcji programu) z danymi (zmiennymi) definiującymi przedmiot.  Wszystko to grupuje się w klasie zawierającej w jednym miejscu zarówno dane definiowanego przedmiotu, jak i dotyczące go funkcje. 5 Podstawowe definicje Klasa – (częściowa lub całkowita) definicja dla obiektu - opis budowy i działania obiektów Obiekt – fizyczna instancja (ucieleśnienie, egzemplarz) klasy. Jest to struktura zawierająca:  dane  metody, czyli funkcje służące do wykonywania na tych danych określonych zadań. Każdy obiekt ma trzy cechy:  tożsamość, czyli cechę umożliwiającą jego identyfikację i odróżnienie od innych obiektów;  stan, czyli aktualny stan „własnych” danych;  zachowanie, czyli zestaw metod wykonujących operacje na tych danych. 6 UKRYWANIE IMPLEMENTACJI: HERMETYZACJA (ENKAPSULACJA) 7  Etykieta dotyczy występujących po niej metod i pól.  Liczba etykiet jest dowolna (mogą się powtarzać).  W przypadku braku etykiety domyślnie jest przypisana sekcja prywatna. class Punkt{ void fun1(){…} //prywatna, bo domyślna protected: int fun2(){ … } int y; private: float fun3(){…} int x; public: double fun4(){…} }; 10 Konwencja nazewnictwa get/set/is Kiedy pole jest zadeklarowane jako prywatne możemy umożliwić :  odczyt wartości pola przez metodę publiczną nazywaną get<nazwa pola>().  modyfikację wartości pola przez metodę publiczną nazywaną set<nazwa pola>. class Punkt { private: int x; int y; public: int getx(){return x;} int gety(){return y;} void setx(int xx){x=xx;} void sety(int yy){ if (yy>=0) y=yy;} }; 11  W C++ jest to tylko konwencja nazewnictwa (zalecany sposób tworzenia nazw metod do odczytu i zapisu pól prywatnych), a nie obowiązkowy element języka.  Stosuje się to w wielu językach obiektowych, niekiedy jest to też mechanizm wbudowany (np. akcesory set, get w C#). 12 Modyfikacje bibliotek  Ukrywanie implementacji pozwala też na modyfikację przez twórcę klas szczegółów udostępnianych bibliotek, bez większego wpływu na kod wykorzystujący te biblioteki (kod napisany przez programistę-klienta).  Modyfikacje to na przykład rozszerzanie funkcjonalności biblioteki czy optymalizacja kodu. 15 KONSTRUKTORY I DESTRUKTORY 16 Geneza  Przyczyną wielu błędów jest to, że programista zapomina o inicjalizacji zmiennych lub "końcowych porządkach".  W programowaniu obiektowym wprowadzono więc półautomatyczny mechanizm inicjacji i "sprzątania": odpowiednio: konstruktory i destruktory. 17 Dwa sposoby inicjalizacji pól w C++ 1. W konstruktorze przy użyciu instrukcji przypisania, np.: Punkt(int xx, int yy) { x = xx; y = yy; } 2. W konstruktorze, przy użyciu listy inicjacyjnej, np.: Punkt(int xx, int yy) : x(xx), y(yy) {}  Dopuszczalne są też rozwiązania mieszane. 20 Konstruktor domyślny  W momencie tworzenia obiektu zawsze wywoływany jest jakiś konstruktor.  Jeżeli w klasie nie został zdefiniowany żaden konstruktor, to kompilator dodaje (niewidoczny w kodzie) konstruktor domyślny (bezparametrowy). 21 Konstruktor bezparametrowy  Często też definiuje się własny konstruktor bezparametrowy. Konstruktor bezparametrowy najczęściej nadaje polom wartości domyślne. 22 Destruktor  W momencie niszczenia obiektu (np.: koniec zakresu widoczności obiektu lokalnego) wywoływany jest destruktor – zdefiniowany w klasie lub domyślny.  Celem definiowania destruktora może być np. zwolnienie zaalokowanej ręcznie pamięci, używanych zmiennych dynamicznych, itp. porządki.  Definicja destruktora: ~<nazwa klasy>() { <deklaracje zmiennych> <instrukcje>, itp. }  Cechy destruktora: nie ma parametrów, nie ma typu wyniku w klasie może wystąpić tylko jeden destruktor nie można go wywołać jak zwykłej metody 25 DIAGRAMY KLAS W NOTACJI UML 26 Schemat klasy w UML Nazwa Atrybuty (zmienne klasowe) Metody (funkcje) 27 Żarówka - bool włączona # int moc + void włącz() + void wyłącz() Aby używać typu bool należy dopisać na początku programu: #include <stdbool.h> Symbole modyfikatorów dostępu: - private + public # protected
Docsity logo


Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved