Sunteți pe pagina 1din 6

Bibliografie

n Bjarne Stroustrup: The C++ Programming


Introducere n Language, Adisson-Wesley, 3nd edition, 1997

Programarea Orientat
Obiect (POO)
Mihai Gabroveanu n M. Preda, A. Mirea, D. Preda, C.Teodorescu.
Introducere in programarea orientata-obiect.
Concepte fundamentale din perspectiva ingineriei
software, Editura Polirom. 2010

Introducere n Programarea Orientat Obiect 10

Bibliografie Detalii Organizatorice

n Liviu Negrescu, Limbajele C i C++ pentru n Curs


ncepatori , Vol. II, (editia XI),Editura Albastra, Prezentarea teoriei generale a Programrii Orientate Obiect
Cluj-Napoca, 2005 n Laborator
Implementri practice ale teoriei prezentate la curs n C++
Mediul de dezvoltare: Visual Studio 2005, DevC++
Prezena este obligatorie
n Evaluare
n Bruce Eckel, Thinking in C++, 2nd Edition, nota de laborator = NL
Prentice Hall 2000 n Doua lucrari
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html n Teme
examen scris = NE
nota final: (NL+NE)/2

Introducere n Programarea Orientat Obiect 9 Introducere n Programarea Orientat Obiect 11


Ce este Programarea Orientat Obiect? Abstractizarea

n Programarea Orientat Obiect (POO) este o metod de n Abstractizarea este procesul de grupare a datelor i
proiectare i implementare n care programele sunt metodelor de prelucrare specifice rezolvrii unei
reprezentate sub forma unor colecii de obiecte care
probleme.
interacioneaz ntre ele prin intermediul mesajelor.
n Limbaje de programare orientate obiect: n Abstraciunea:
C++ exprim toate caracteristicile eseniale ale unui obiect care
C# fac ca acesta s se disting de alte obiecte;
Java ofer o definire precis a granielor conceptuale ale
obiectelor din perspectiva unui privitor extern.

Introducere n Programarea Orientat Obiect 12 Introducere n Programarea Orientat Obiect 14

Concepte de baz n POO Abstractizarea - Exemplu

n Principalele concepte care stau la baza POO n Tipul abstract de date "Student"
sunt: typedef struct {
char nume[50];
Abstractizarea
char facultatea[30];
ncapsularea
int anStudii;
Modularitatea } Student;
Ierarhizarea n Instanierea tipului abstract "Student"
Student s={"Popescu Emil,"Informatica",1};

Introducere n Programarea Orientat Obiect 13 Introducere n Programarea Orientat Obiect 15


NCAPSULAREA IERARHIZAREA

n Combinarea datelor i metodelor ntr-o singur n Reprezint o ordonare a abstraciunilor.


structur de date, definind totodat modul n care
obiectul i restul programului pot referi datele din n Principalele tipuri sunt:
obiect. Motenirea (ierarhia de clase) relaie ntre clase n care o
n Concept care definete apartenena unor proprieti clas mprtete structura i comportarea definit n una
i metode fa de un obiect. sau mai multe clase (semantic implic o relaie de tip is
n Const n separarea aspectelor externe ale unui a).
obiect care sunt accesibile altor obiecte de aspectele Agregarea (ierarhia de obiecte) relaie ntre dou obiecte
interne ale obiectului care sunt ascunse celorlalter n care unul dintre obiecte aparine celuilalt obiect.
obiecte (semantic implic o relaie de tip part of)

Introducere n Programarea Orientat Obiect 16 Introducere n Programarea Orientat Obiect 18

MODULARITATEA Obiecte

n Modalitate de a grupa abstraciuni legate logic n Un obiect este o reprezentare a unei entiti din
ntre ele. lumea real asupra cruia se poate ntreprinde o
aciune sau care poate ntreprine o aciune
n Un obiect este caracterizat de
n nume
n atribute (date)
valorile atributelor la un moment dat definesc o stare
n metode (servicii, operatii)

Introducere n Programarea Orientat Obiect 17 Introducere n Programarea Orientat Obiect 19


Clasa Tipuri de date abstracte si obiecte
n O clas este o colecie de obiecte cu aceiai structur n A doua definitie pentru obiecte si clase:
(caracteristici) i acelai comportament (metode sau operatii)
O clasa este o implementare a unui tip de date abstract.
Obiecte - Bicilete Clasa Bicilet Ea defineste atribute si metode care implementeaza
- atribute structura de date respectiv operatiile tipului de date
tip cadru abstract.
dimensiunea rotii
numar de viteze
- metode Un obiect este o instanta a unei clase. El este unic
acelereza determinat de numele sau si defineste o stare
franeaza reprezentata de valorile atributelor sale la un anumit
moment particular.

Introducere n Programarea Orientat Obiect 20 Introducere n Programarea Orientat Obiect 22

Identificarea atributelor i metodelor Sintaxa definirii unei clase


n n cadrul unei banci un cont bancar are un titular, n Definirea unei clase const din dou pri distincte:
sold, o rata a dobinzii, numar de cont i se pot declararea clasei
efectua operatii de depunere, extragere, actualizare implementarea clasei respective
sold. n Sintaxa
n Extragerea atributelor: class IdNumeClasa{
n titular, sold, rata a dobinzii, numar de cont declaratii de date membru;
n Extragerea metodelor declaratii/definiii de functii membru;
n depunere, extragere, actualizare sold };

Introducere n Programarea Orientat Obiect 21 Introducere n Programarea Orientat Obiect 23


Protecia datelor i funciilor membre Exemplu
Declararea clasei ContBancar
class ContBancar{
n Funciile i datele unei clase pot fi grupate din private:

punct de vedere al dreptului de acces n: char titular[100];


char codIBAN[25];
private conine date i funcii membre care pot fi folosite float sold;
doar de ctre celelalte funcii aparinnd clasei respective; public:
protected similara cu private dar care ddrepturi de void init(char _titular[], char _codIBAN[],
float _sold);
acces i funciilor membre ale claselor derivate din clasa void depune(float suma);
respectiv void retrage(float suma);
public drept de acces tuturor. float getSold();
void afis();

};

Introducere n Programarea Orientat Obiect 24 Introducere n Programarea Orientat Obiect 26

Delararea/definirea unei metode Exemplu


Implementarea clasei ContBancar
void ContBancar::init(char _titular[], char
Declarare _codIBAN[], float _sold){
strcpy(titular,_titular);
class IdNumeClasa{
strcpy(codIBAN,_codIBAN);
tip idNumeMetoda(tip1 p1, , tip pn);
sold = _sold;
};
}
Definire
tip IdNumeClasa:: tip idNumeMetoda(tip1 p1, , tip pn){ void ContBancar::depune(float suma){

//instructiuni sold = sold + suma;

} }

void ContBancar::retrage(float suma){


sold = sold - suma;
}

Introducere n Programarea Orientat Obiect 25 Introducere n Programarea Orientat Obiect 27


Exemplu Referirea la datele si metodele membru
Implementarea clasei ContBancar

float ContBancar::getSold(){ idOb.idDataMembru


return sold;
} idPointerOb ->idDataMembru
void ContBancar::afis(){
printf("Titular: %s\n", titular);
printf("Cod IBAN: %s\n", codIBAN);
idOb.idMetodaMembru(lista de parametri);
printf("Sold: %g\n", sold);
idPointerOb ->idMetodaMembru(lista de parametri);
}

Introducere n Programarea Orientat Obiect 28 Introducere n Programarea Orientat Obiect 30

Sintaxa declararii unui obiect Exemplu


int main(){
IdNumeClasa{ ContBancar c;

// . c.init("Popescu",
"RO49RNCB0080005630320001", 100);

} idOb1, , idObN; c.afis();


printf("Depun 10 RON\n");
c.depune(10);
c.afis();
sau printf("Extrag 15 RON\n");
c.depune(10);
c.afis();
IdNumeClasa idOb1, , idObN; }

Introducere n Programarea Orientat Obiect 29 Introducere n Programarea Orientat Obiect 31

S-ar putea să vă placă și