150 likes | 323 Views
NobleProg. Programowanie w języku C++. Programowanie w języku C++. CZĘŚĆ 4 – PROGRAMOWANIE OBIEKTOWE. Teoria - ogólnie.
E N D
NobleProg Programowanie w języku C++
Programowanie w języku C++ CZĘŚĆ 4 – PROGRAMOWANIE OBIEKTOWE
Teoria - ogólnie Programowanie obiektowe - (ang. object- oriented programming - OOP ) - metodologia tworzenia programów komputerowych, która definiuje programy za pomocą "obiektów" - elementów łączących stan (czyli dane) i zachowanie (czyli procedury, tu: metody). 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.
Specyfikatory dostępu Służą one do kontroli możliwości dostępu do poszczególnych składowych klasy. Public – składowe publiczne, dostępne wszędzie, również poza klasą Private(default) – składowe prywatne, widoczne jedynie wewnątrz samej klasy – dla jej własnych metod Protected – zasady dostępu są takie same jak w przypadku specyfikatora Private, z jedną tylko różnicą – składowe oznaczone jako Protected będą widoczne w klasach pochodnych, jako Private, nie.
Definicja klasy Klasa składa się ze słowa kluczowego class oraz nazwy klasy. Zasady tworzenia nazw klas są takie same jak dla zmiennych. Wewnątrz klasy znajdują się pola i metody klasy oraz ich specyfikatory dostępu. Kod 28
Pola i metody klasy Są to zmienne które znajdują się wewnątrz klasy, zgrupowane wewnątrz obiektu w jedną całość, przechowujące stan obiektu – wartości zmiennych. Są to najważniejsze elementy, do których dostęp zazwyczaj określamy jako prywatny (Private). Wartości pól klasy modyfikujemy bądź pobieramy za pomocą metod klasy. Metody to funkcje będące częścią składową klasy. Dostęp do nich ograniczony jest odpowiednimi specyfikatorami. Ponownie kod 28
Obiekt - instancja Obiekt to stworzenie konkretnego wystąpienia danej klasy (klasa ożywa). Przykładowo, mamy klasę Samochodzik, jej obiektem będzie konkretne wystąpienie, np. VW lub Opel
Przykładzik Kod 29
Konstruktor Kod 30
Dziedziczenie Można też dziedziczyć wiele klas np. Class prostokąt : public figura, public zestaw { } Kod 31
Metoda statyczna Można ją wywoływać bez odniesienia do obiektu Kod 31a
Metoda wirtualna - polimorfizm Po skompilowaniu na ekranie zobaczymy dwa wypisy: "Tu funkcja pisz z klasy A". Stało się tak dlatego, że wskaźnik jest do typu A. Gdy ustawiliśmy wskaźnik na obiekt typu pochodnego, a następnie wywołaliśmy funkcję składową, to kompilator sięgnął po funkcję pisz z klasy bazowej. Kod 32 (prawie )
Metoda wirtualna Kod 32 (prawie ) Można jednak określić żeby kompilator nie sięgał po funkcję z klasy bazowej, ale sam się zorientował na co wskaźnik pokazuje. Do tego służy przydomek virtual, a funkcja składowa nim oznaczona nazywa się wirtualną. Różnica polega tylko na dodaniu słowa kluczowego virtual, co wygląda tak: