Sunteți pe pagina 1din 6

Bibliografie

Introducere n
Programarea Orientat
Obiect (POO)

Bjarne Stroustrup: The C++ Programming


Language, Adisson-Wesley, 3nd edition, 1997

Mihai Gabroveanu

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

Detalii Organizatorice

Bibliografie
n

Liviu Negrescu, Limbajele C i C++ pentru


ncepatori , Vol. II, (editia XI),Editura Albastra,
Cluj-Napoca, 2005

Curs

Laborator

n
n

10

Bruce Eckel, Thinking in C++, 2nd Edition,


Prentice Hall 2000

Implementri practice ale teoriei prezentate la curs n C++


Mediul de dezvoltare: Visual Studio 2005, DevC++
Prezena este obligatorie

Evaluare

nota de laborator
n

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

Introducere n Programarea Orientat Obiect

Prezentarea teoriei generale a Programrii Orientate Obiect

= NL

Doua lucrari
Teme

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

Introducere n Programarea Orientat Obiect

11

Ce este Programarea Orientat Obiect?


n

Abstractizarea

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:

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.

C++
C#
Java

Introducere n Programarea Orientat Obiect

12

Concepte de baz n POO


n

Abstractizarea este procesul de grupare a datelor i


metodelor de prelucrare specifice rezolvrii unei
probleme.
Abstraciunea:

Introducere n Programarea Orientat Obiect

Abstractizarea - Exemplu

Principalele concepte care stau la baza POO


sunt:

Tipul abstract de date "Student"


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

Abstractizarea
ncapsularea
Modularitatea
Ierarhizarea

Introducere n Programarea Orientat Obiect

14

13

Instanierea tipului abstract "Student"


Student s={"Popescu Emil,"Informatica",1};
Introducere n Programarea Orientat Obiect

15

NCAPSULAREA
n

n
n

IERARHIZAREA

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

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)

16

MODULARITATEA
n

Introducere n Programarea Orientat Obiect

Obiecte

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)

Introducere n Programarea Orientat Obiect

18

17

valorile atributelor la un moment dat definesc o stare

metode (servicii, operatii)

Introducere n Programarea Orientat Obiect

19

Clasa
n

Tipuri de date abstracte si obiecte

O clas este o colecie de obiecte cu aceiai structur


(caracteristici) i acelai comportament (metode sau operatii)

A doua definitie pentru obiecte si clase:


O

Obiecte - Bicilete

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.

Clasa Bicilet
- atribute
tip cadru
dimensiunea rotii
numar de viteze
- metode
acelereza
franeaza

Introducere n Programarea Orientat Obiect

Un

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.

20

Identificarea atributelor i metodelor


n

n
n

declararea clasei
implementarea clasei respective
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

Introducere n Programarea Orientat Obiect

Definirea unei clase const din dou pri distincte:

Extragerea metodelor
n

22

Sintaxa definirii unei clase

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

Introducere n Programarea Orientat Obiect

21

Introducere n Programarea Orientat Obiect

23

Protecia datelor i funciilor membre

Exemplu
Declararea clasei ContBancar

class ContBancar{

Funciile i datele unei clase pot fi grupate din


punct de vedere al dreptului de acces n:

private:
char titular[100];

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.

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

};
Introducere n Programarea Orientat Obiect

24

Delararea/definirea unei metode

Introducere n Programarea Orientat Obiect

26

Exemplu
Implementarea clasei ContBancar
void ContBancar::init(char _titular[], char
_codIBAN[], float _sold){

Declarare

strcpy(titular,_titular);

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

strcpy(codIBAN,_codIBAN);
sold = _sold;
}

Definire
void ContBancar::depune(float suma){

tip IdNumeClasa:: tip idNumeMetoda(tip1 p1, , tip pn){


//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

idOb.idDataMembru
idPointerOb ->idDataMembru

float ContBancar::getSold(){
return sold;
}

void

ContBancar::afis(){

idOb.idMetodaMembru(lista de parametri);
idPointerOb ->idMetodaMembru(lista de parametri);

printf("Titular: %s\n", titular);


printf("Cod IBAN: %s\n", codIBAN);
printf("Sold: %g\n", sold);
}

Introducere n Programarea Orientat Obiect

28

Sintaxa declararii unui obiect

Introducere n Programarea Orientat Obiect

30

Exemplu
int main(){

IdNumeClasa{
// .
} idOb1, , idObN;

ContBancar c;
c.init("Popescu",
"RO49RNCB0080005630320001", 100);
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