Sunteți pe pagina 1din 6

Bibliografie

Introducere n Programarea Orientat Obiect (POO)


Mihai Gabroveanu

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

Introducere n Programarea Orientat Obiect

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

Bruce Eckel, Thinking in C++, 2nd Edition, Prentice Hall 2000


http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html

= NL

Doua lucrari Teme

examen scris = NE nota final: (NL+NE)/2

Introducere n Programarea Orientat Obiect

Introducere n Programarea Orientat Obiect

11

Ce este Programarea Orientat Obiect?


n

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.

Introducere n Programarea Orientat Obiect

12

Introducere n Programarea Orientat Obiect

14

Concepte de baz n POO


n

Abstractizarea - Exemplu
n

Principalele concepte care stau la baza POO sunt:


Abstractizarea ncapsularea Modularitatea Ierarhizarea

Tipul abstract de date "Student"


typedef struct { char nume[50]; char facultatea[30]; int anStudii; } Student;

Instanierea tipului abstract "Student" Student s={"Popescu Emil,"Informatica",1};


Introducere n Programarea Orientat Obiect 15

Introducere n Programarea Orientat Obiect

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

Reprezint o ordonare a abstraciunilor. Principalele tipuri sunt:

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)

Introducere n Programarea Orientat Obiect

18

MODULARITATEA
n

Obiecte
n

Modalitate de a grupa abstraciuni legate logic ntre ele.

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

nume atribute (date)

valorile atributelor la un moment dat definesc o stare

metode (servicii, operatii)

Introducere n Programarea Orientat Obiect

17

Introducere n Programarea Orientat Obiect

19

Clasa
n

Tipuri de date abstracte si obiecte


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

A doua definitie pentru obiecte si clase:


O

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

Introducere n Programarea Orientat Obiect

20

Identificarea atributelor i metodelor


n

Sintaxa definirii unei clase


n

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

Definirea unei clase const din dou pri distincte:


declararea clasei implementarea clasei respective

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

Introducere n Programarea Orientat Obiect

21

Introducere n Programarea Orientat Obiect

23

Protecia datelor i funciilor membre


n

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

Delararea/definirea unei metode


Declarare
class IdNumeClasa{ tip idNumeMetoda(tip1 p1, , tip pn); };

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; }

void ContBancar::retrage(float suma){ sold = sold - suma; }


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

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); }

Introducere n Programarea Orientat Obiect

28

Introducere n Programarea Orientat Obiect

30

Sintaxa declararii unui obiect


IdNumeClasa{ // . } idOb1, , idObN; sau IdNumeClasa idOb1, , idObN;

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(); }

Introducere n Programarea Orientat Obiect

29

Introducere n Programarea Orientat Obiect

31

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