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 Programării Orientate Obiect
Cluj-Napoca, 2005 n Laborator
¨ Implementări practice ale teoriei prezentate la curs în C++
¨ Mediul de dezvoltare: Visual Studio 2005, DevC++
¨ Prezența 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 rezolvării unei
reprezentate sub forma unor colecții de obiecte care
probleme.
interacționează între ele prin intermediul mesajelor.
n Limbaje de programare orientate obiect: n Abstracţiunea:
¨ C++ ¨ exprimă toate caracteristicile esenţiale ale unui obiect care
¨ C# fac ca acesta să se distingă de alte obiecte;
¨ Java ¨ oferă o definire precisă a graniţelor 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 Instanţierea 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 abstracţiunilor.


structură de date, definind totodată modul în care
obiectul şi restul programului pot referi datele din n Principalele tipuri sunt:
obiect. ¨ Moştenirea (ierarhia de clase) relaţie între clase în care o
n Concept care defineşte apartenenţa unor proprietăţi clasă împărtăşeşte structura şi comportarea definită în una
şi metode faţă de un obiect. sau mai multe clase (semantic implică o relaţie de tip “is
n Constă în separarea aspectelor externe ale unui a”).
obiect care sunt accesibile altor obiecte de aspectele ¨ Agregarea (ierarhia de obiecte) relaţie între două obiecte
interne ale obiectului care sunt ascunse celorlalter în care unul dintre obiecte aparţine celuilalt obiect.
obiecte (semantic implică o relaţie de tip “part of”)

Introducere în Programarea Orientată Obiect 16 Introducere în Programarea Orientată Obiect 18

MODULARITATEA Obiecte

n Modalitate de a grupa abstracţiuni legate logic n Un obiect este o reprezentare a unei entități din
între ele. lumea reală asupra căruia se poate întreprinde o
acţiune sau care poate întreprine o acţiune
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 colecție de obiecte cu aceiași structură n A doua definitie pentru obiecte si clase:
(caracteristici) și același 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ă părţi 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/definiții de functii membru;
n depunere, extragere, actualizare sold };

Introducere în Programarea Orientată Obiect 21 Introducere în Programarea Orientată Obiect 23


Protecția datelor și funcțiilor membre Exemplu
Declararea clasei ContBancar
class ContBancar{
n Funcţiile şi datele unei clase pot fi grupate din private:

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


char codIBAN[25];
¨ private – conţine date şi funcţii membre care pot fi folosite float sold;
doar de către celelalte funcţii aparţinând clasei respective; public:
¨ protected – similara cu private dar care dădrepturi de void init(char _titular[], char _codIBAN[],
float _sold);
acces şi funcţiilor 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