Informatyka - Programowanie Obiektowe - podstawy.pdf

(7 KB) Pobierz
1122852 UNPDF
Programowanie obiektowe
Programowanie obiektowe ogólnie bior ac polega na operowaniu w programie pewnymi obiektami, które zawieraj a
dane wraz z tzw. metodami, umozliwiaj acymi wykonywanie operacji na tych danych. Jedn a z idei programowania obiek-
towego jest maksymalne ograniczenie niekontrolowanego dostepu do pól obiektu przechowuj acych dane. Dostep do pól
powinien sie odbywac wył acznie przy pomocy metod zdefiniowanych w obiekcie (jest tzw. hermetyzacja). Podstawowa
róznica miedzy programowaniem strukturalnym a obiektowym polega na tym, ze przy wywołaniu funkcji s a przekazy-
wane dane, przy programowaniu obiektowym natomiast wywołuje sie metody, które operuj a na odpowiednich danych
zawartych w polach obiektu.
Deklaracja klasy:
class nazwa_klasy
{
public:
nazwa_klasy(); //konstruktor
~nazwa_klasy(); //destruktor
pola_klasy;
prototypy_metod_klasy();
private:
prototypy_metod_klasy();
pola_klasy;
};
Deklaracje klasy umieszcza sie zwyczajowo w plikach nagłówkowych z rozszerzeniem .h natomiast definicje
metod klasy umieszcza sie w plikach .cpp .
Podczas deklaracji mozliwe jest zagniezdzanie obiektów polegaj ace na korzystaniu w danej klasie z obiektów innej
klasy.
Obiekty typu danej klasy tworzy sie analogicznie jak zmienne innych typów.
Słowa kluczowe public, private, protected .
Pola i metody umieszczone po słowie public dostepne s a bezposrednio w całym programie, dostep uzyskuje sie
za pomoc a operatora kropki (dla obiektów tworzonych statycznie).
Słowo private ogranicza bezposredni dostep do pól i metod umieszczonych po nim tylko do wnetrza danego
obiektu, gdzie zostały zadeklarowane.
Słowo protected umozliwia bezposredni dostep do pól i metod w klasie gdzie zostały zadeklarowane jak rów-
niez w klasach pochodnych od danej klasy podczas korzystania z własnosci dziedziczenia.
Konstruktory i destruktory – s a to specjalne metody wywoływane podczas tworzenia
obiektu oraz jego usuwania.
konstruktor nie moze posiadac definicji zwracanego typu
konstruktor bez zadnych argumentów jest konstruktorem domyslnym
nazwa destruktora musi byc poprzedzona znakiem tyldy
destruktor nie posiada definicji typu zwracanego oraz nie przyjmuje zadnych argumentów
nazwy konstruktora i destruktora musz a byc zgodne z nazw a klasy
konstruktor i destruktor musz a byc zadeklarowane w czesci publicznej klasy
domyslny konstruktor moze byc przeci azany
Przykład deklaracji klasy:
class pojazd
{
int rocznik;
char nazwa[15];
protected:
int rocznik1;
public:
pojazd();
pojazd(int r, char *n);
void ustaw_r (int r);
int pobierz_r ();
void ustaw_naz(char *n);
char *wyswietl_naz();
void ustaw_r1 (int r1) {rocznik1=r1;};
int pojemnosc;
};
Definicje metod dla powyzszej klasy:
pojazd::pojazd()
{
rocznik=0;
strcpy(nazwa,"");
}
pojazd::pojazd(int r,char *n)
{
rocznik=r;
strcpy(nazwa,n);
}
void pojazd::ustaw_r(int r)
{
rocznik=r;
}
int pojazd::pobierz_r()
{
return rocznik;
}
void pojazd::ustaw_naz(char *n)
{
strcpy(nazwa,n);
}
char *pojazd::wyswietl_naz()
{
return nazwa;
}
Zgłoś jeśli naruszono regulamin