Documente Academic
Documente Profesional
Documente Cultură
Curs 01 - Introducere in POO
Curs 01 - Introducere in POO
Bjarne Stroustrup: The C++ Programming Language, Adisson-Wesley, 3nd edition, 1997
M. Preda, A. Mirea, D. Preda, C.Teodorescu. Introducere in programarea orientata-obiect. Concepte fundamentale din perspectiva ingineriei software, Editura Polirom. 2010
10
Bibliografie
n
Detalii Organizatorice
n n
Liviu Negrescu, Limbajele C #i C++ pentru ncepatori , Vol. II, (editia XI),Editura Albastra, Cluj-Napoca, 2005
Curs
Prezentarea teoriei generale a Program rii Orientate Obiect Implement ri practice ale teoriei prezentate la curs n C++ Mediul de dezvoltare: Visual Studio 2005, DevC++ Prezen%a este obligatorie nota de laborator
n n
Laborator
n n
Evaluare
= NL
11
Abstractizarea
n
Programarea Orientat Obiect (POO) este o metod de proiectare #i implementare n care programele sunt reprezentate sub forma unor colec%ii de obiecte care interac%ioneaz ntre ele prin intermediul mesajelor. Limbaje de programare orientate obiect:
Abstractizarea este procesul de grupare a datelor &i metodelor de prelucrare specifice rezolv rii unei probleme. Abstrac#iunea:
C++ C# Java
exprim toate caracteristicile esen(iale ale unui obiect care fac ca acesta s se disting de alte obiecte; ofer o definire precis a grani(elor conceptuale ale obiectelor din perspectiva unui privitor extern.
12
14
Abstractizarea - Exemplu
n
13
NCAPSULAREA
n
IERARHIZAREA
n n
n n
Combinarea datelor &i metodelor ntr-o singur structur de date, definind totodat modul n care obiectul &i restul programului pot referi datele din obiect. Concept care define&te apartenen(a unor propriet (i &i metode fa( de un obiect. Const n separarea aspectelor externe ale unui obiect care sunt accesibile altor obiecte de aspectele interne ale obiectului care sunt ascunse celorlalter obiecte
16
Mo&tenirea (ierarhia de clase) rela(ie ntre clase n care o clas mp rt &e&te structura &i comportarea definit n una sau mai multe clase (semantic implic o rela(ie de tip is a). Agregarea (ierarhia de obiecte) rela(ie ntre dou obiecte n care unul dintre obiecte apar(ine celuilalt obiect. (semantic implic o rela(ie de tip part of)
18
MODULARITATEA
n
Obiecte
n
Un obiect este o reprezentare a unei entit %i din lumea real asupra c ruia se poate ntreprinde o ac(iune sau care poate ntreprine o ac(iune Un obiect este caracterizat de
n n
17
19
Clasa
n
O clas este o colec%ie de obiecte cu aceia#i structur (caracteristici) #i acela#i comportament (metode sau operatii)
Obiecte - Bicilete Clasa Bicilet - atribute tip cadru dimensiunea rotii numar de viteze - metode acelereza franeaza
clasa este o implementare a unui tip de date abstract. Ea defineste atribute si metode care implementeaza structura de date respectiv operatiile tipului de date abstract. obiect este o instanta a unei clase. El este unic determinat de numele sau si defineste o stare reprezentata de valorile atributelor sale la un anumit moment particular.
Introducere n Programarea Orientat Obiect 22
Un
20
n n
n cadrul unei banci un cont bancar are un titular, sold, o rata a dobinzii, numar de cont #i se pot efectua operatii de depunere, extragere, actualizare sold. Extragerea atributelor:
n
Sintaxa
class IdNumeClasa{ declaratii de date membru; declaratii/defini%ii de functii membru; };
titular, sold, rata a dobinzii, numar de cont depunere, extragere, actualizare sold
Extragerea metodelor
n
21
23
Exemplu
Declararea clasei ContBancar
class ContBancar{ private: char titular[100]; char codIBAN[25]; float sold; public: void init(char _titular[], char _codIBAN[], float _sold); void depune(float suma); void retrage(float suma); float getSold(); void afis();
Func#iile &i datele unei clase pot fi grupate din punct de vedere al dreptului de acces n:
private con(ine date &i func(ii membre care pot fi folosite doar de c tre celelalte func(ii apar(innd clasei respective; protected similara cu private dar care d drepturi de acces &i func(iilor membre ale claselor derivate din clasa respectiv public drept de acces tuturor.
};
Introducere n Programarea Orientat Obiect 24 Introducere n Programarea Orientat Obiect 26
Exemplu
Implementarea clasei ContBancar
void ContBancar::init(char _titular[], char _codIBAN[], float _sold){ strcpy(titular,_titular); strcpy(codIBAN,_codIBAN); sold = _sold; }
Definire
tip IdNumeClasa:: tip idNumeMetoda(tip1 p1, , tip pn){ //instructiuni }
void ContBancar::depune(float suma){ sold = sold + suma; }
Exemplu
Implementarea clasei ContBancar
float ContBancar::getSold(){ return sold; }
Referirea la datele si metodele membru idOb.idDataMembru idPointerOb ->idDataMembru idOb.idMetodaMembru(lista de parametri); idPointerOb ->idMetodaMembru(lista de parametri);
void
ContBancar::afis(){
printf("Titular: %s\n", titular); printf("Cod IBAN: %s\n", codIBAN); printf("Sold: %g\n", sold); }
28
30
Exemplu
int main(){ ContBancar c; c.init("Popescu", "RO49RNCB0080005630320001", 100); c.afis(); printf("Depun 10 RON\n"); c.depune(10); c.afis(); printf("Extrag 15 RON\n"); c.depune(10); c.afis(); }
29
31