Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Podstawy informatyki Zygfryd Głowacz
2
Programowanie proceduralne
struct punkt { int x,y } void Narysuj(struct punkt P) // ciało funkcji
3
Programowanie obiektowe
class PUNKT { int x,y public: void Narysuj(void); }
4
Programowanie obiektowe
Klasa PUNKT zawiera zarówno dane definiujące punkt na ekranie jak i funkcję pozwalającą na jego wyświetlenie
5
Programowanie obiektowe
Obiekt jest kolejnym typem danych, który oprócz tego, że zawiera inne dane (tak jak struktura) zawiera również swoje własne funkcje zwane metodami. Obiekty są rozwinięciem koncepcji programowania z kontrolą typów zmiennych. W programowaniu obiektowym obiekty tworzone są dynamicznie jako podstawowy element konstrukcji programu. Podobnie jak dla typu liczb naturalnych czy typu zmiennych znakowych, dla których zdefiniowane są pewne operacje jak np. dodawanie czy konkatenacja, a nie są zdefiniowane inne, jak np. operacje logiczne, tak dla obiektów programista decyduje o wykonalności pewnych operacji oraz definiuje ich funkcyjną postać. Użycie obiektów polega na ich zainicjalizowaniu (np. na nadaniu zmiennej całkowitej pewnej wartości) oraz na wykonywaniu na nich operacji zgodnie z definicją typu - obiektu. Zmienne obiektowe są obiektami pewnej klasy.
6
Programowanie obiektowe
Klasa jest szablonem według którego konstruowany jest obiekt. Klasę deklaruje się przy użyciu słowa kluczowego class po którym następuje nazwa klasy oraz jej definicja. class nazwa_klasy{ }; Należy pamiętać, by po definicji klasy umieścić instrukcję pustą ; (średnik). Dobrą praktyką jest nadawanie klasie nazwy zaczynającej się dużą literą, a najlepiej dużą literą C (np. COsoba) lub literą biblioteki, z której klasa się wywodzi (np. QObiekt). Tworzenie (deklaracja) obiektów danej klasy wygląda podobnie jak deklaracja zmiennych strukturalnych: COsoba PanX; Dostęp do pól i metod klasy odbywa się (podobnie jak w przypadku struktury) przy pomocy operatora wyboru . (kropka): PanX.imie=”Maciej”; PanX.wczytaj_imie(Maciej);
7
Programowanie obiektowe
Pola (zmienne) i metody (funkcje) klasy mogą być umieszczone w jednej z trzech sekcji: public, protected lub private określających dostępność tych zmiennych i metod. public - umieszczenie zmiennych i metod w tej sekcji powoduje, że są one dostępne w całym programie protected - umieszczenie zmiennych i metod w tej sekcji powoduje, że są one dostępne tylko w danej klasie i klasach pochodnych, a dostęp do nich w całym programie możliwy jest tylko przy użyciu metod tej klasy (lub klas pochodnych) private - umieszczenie zmiennych i metod w tej sekcji powoduje, że są one dostępne tylko w danej klasie, a w klasach pochodnych, dostęp do nich możliwy jest tylko przy użyciu metod tej klasy (bazowej) Taki przydział dostępu do zasobów klasy nosi nazwę hermetyzacji. W hermetyzacji dąży się do tego, by dostęp do poszczególnych pól mógł odbywać się wyłącznie przy zastosowaniu metod danej klasy. Każdą z sekcji można pominąć w definicji klasy, jeśli nie przewidujemy umieszczania tam żadnych zmiennych.
8
Programowanie obiektowe
Polami klasy mogą być zmienne dowolnych typów (tym struktury oraz obiekty innych klas). Metodami są zwykle funkcje, które mają dostęp do pól klasy lub do innych metod, które taki dostęp posiadają. Zgodnie z ideą hermetyzacji dąży się do tego, by wszystkie metody znajdowały się w sekcji public, a wszystkie pola w sekcjach protected i/lub private (oczywiście są czasem pewne wyjątki od tej reguły) Definicja metod może znajdować się całkowicie wewnątrz definicji klasy, ale z reguły umieszcza się tam jedynie prototyp metody (z uwagi na przejrzystość kodu), a jej definicję za definicją klasy; należy wówczas w definicji umieścić informację, do jakiej klasy metoda należy; używa się do tego operatora :: void WypiszImie(); prototyp metody umieszczany w definicji klasy void COsoba::WypiszImie(){ definicja metody };
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.