Documente Academic
Documente Profesional
Documente Cultură
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 Programrii Orientate Obiect Implementri practice ale teoriei prezentate la curs n C++ Mediul de dezvoltare: Visual Studio 2005, DevC++ Prezena 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 colecii de obiecte care interacioneaz ntre ele prin intermediul mesajelor. Limbaje de programare orientate obiect:
Abstractizarea este procesul de grupare a datelor i metodelor de prelucrare specifice rezolvrii unei probleme. Abstraciunea:
C++ C# Java
exprim toate caracteristicile eseniale ale unui obiect care fac ca acesta s se disting de alte obiecte; ofer o definire precis a granielor 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 definete apartenena unor proprieti 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
Introducere n Programarea Orientat Obiect 16
Motenirea (ierarhia de clase) relaie ntre clase n care o clas mprtete structura i comportarea definit n una sau mai multe clase (semantic implic o relaie de tip is a). Agregarea (ierarhia de obiecte) relaie ntre dou obiecte n care unul dintre obiecte aparine celuilalt obiect. (semantic implic o relaie de tip part of)
18
MODULARITATEA
n
Obiecte
n
Un obiect este o reprezentare a unei entiti din lumea real asupra cruia se poate ntreprinde o aciune sau care poate ntreprine o aciune Un obiect este caracterizat de
n n
17
19
Clasa
n
O clas este o colecie de obiecte cu aceiai structur (caracteristici) i acelai 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/definiii 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();
Funciile i datele unei clase pot fi grupate din punct de vedere al dreptului de acces n:
private conine date i funcii membre care pot fi folosite doar de ctre celelalte funcii aparinnd clasei respective; protected similara cu private dar care ddrepturi de acces i funciilor 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