Sunteți pe pagina 1din 16

Programarea pe obiecte (P.O.

O)

Programul = un ansamblu de obiecte intercorelate (se apelează între


ele prin intermediul mesajelor)

Concepte fundamentale:
• Obiectul
• Clasa de obiecte
• Abstractizarea
• Încapsularea
• Moştenirea
• Polimorfismul
• Persistenţa

conf. dr. Cozgarea Adrian


Obiectul
= entitate concretă (existentă în realitate) definită prin :
➢ identitate = asigură identificarea/deosebirea obiectelor
- caracteristică independentă de datele conținute de obiect
- asigurată/generată de sistem (locația din memorie unde este stocat obiectul)
➢ stare = date deținute de obiect (valorile atributelor sale)
- starea se poate modifica în timp

➢ comportament = operații/metode „cunoscute”/efectuate de obiect


Exemple: persoana Ionescu, contul 401, auto cu numărul 11-Y-TTT

Obiecte identice = obiecte cu aceeași identitate (identificator)


Obiecte egale = ob. cu aceeași stare (dețin aceleași valori)

conf. dr. Cozgarea Adrian


Abstractizarea

= proces prin care se identifică și se rețin numai aspectele esențiale ale


realității.
Abstractizare Abstractizare
Obiecte Clase Clase abstracte

conf. dr. Cozgarea Adrian


Obiecte

Abstractizare
Clasa: PERSOANĂ
Ionescu Atribute:
Nume
Prenume
DataNaşterii
Popescu Operaţii:
Vorbeşte()
Merge()
...
Georgescu

Obiectele = valori concrete (reale) = instanțe ale claselor


Instanțiere = procesul de creare a obiectelor pe baza unei clase
conf. dr. Cozgarea Adrian
Clasa
= tip de date obţinut prin abstractizarea unor obiecte asemănătoare.
~ descriere (în limbaj natural/grafic/de programare) a unor obiecte similare
Structură:
 Denumire
Atribute
Operații

Abstractizare Clasa: FACTURA


FACTURA
FACTURANr. 12545 Atribute:
Data: 10,01,2007
FACTURA
Material
Nr. 12545
Data: UM Preţ Cantitate
10,01,2007
Nr. 12545
Număr
FACTURA
Material
Material
Ciment
Ciment
UMKg Preţ200Cantitate
Data: 10,01,2007
Nr. 12545
UM Kg Preţ 200Cantitate
Data: 10/01/2007
10000
10000
Data
Material
Ciment UM Kg Preţ 200Cantitate
10000 Materiale facturate
Ciment Kg 200 10000
Operaţii:
RedăTotalFactură()
 Clasa nu conține obiecte, ci descrie obiecte asemănătoare (cu aceleași atribute și
metode) !
Ex: clasa CONT (atribute: simbol, denumire, SI; operații CalculSoldFinal())
obiecte (instanțe) de tip CONT: ct. 301-Mat. prime, ct. 401- Furnizori etc.
conf. dr. Cozgarea Adrian
Membrii clasei
= indică atât atributele, cât și metodele unei clasei

Tipuri:
- membri de instanță – vizează fiecare instanță a clasei
- membri de clasă – vizează clasa în întregime (se aplică grupului
format din toate obiectele acesteia)

Tipuri comune de operații:


- constructori – apelați automat la fiecare instanțiere a clasei
– rol: inițializarea atributelor
- destructori – apelați automat la distrugerea (ștergerea) unui obiect
– rol: eliberarea resurselor ocupate de obiect
- modificatori – permit modificarea atributelor din exteriorul clasei
- selectori – asigură citirea atributelor din exterior
conf. dr. Cozgarea Adrian
Abstractizarea claselor

Abstractizare
FACTURĂ
DOCUMENT
CONTRACT

Triunghi

ABSTRACTIZARE
Formă
geometrică
Dreptunghi Cerc

conf. dr. Cozgarea Adrian


Încapsularea
Vizează două aspecte:
1. Obiect = date (atribute) + prelucrări (operații)

2. Ascunderea informației => obiectul = „cutie neagră”:

Operatie Mesaj
DATE Operatie Mesaj

conf. dr. Cozgarea Adrian


Calificatori pentru vizibilitate

- disponibili în limbajele de programare O.O. (orientate pe obiecte),


pt. a permite o flexibilitate sporită a încapsulării (ascunderea
informațiilor)

+ public
- private
# protected

conf. dr. Cozgarea Adrian


Moştenirea

= proces prin care membrii unei clase (superclasă/clasă de bază) sunt preluați de o
altă clasă (subclasă/clasă derivată)

Subclasa = subtip al clasei de bază  orice obiect al unei subclase este și de tipul
clasei de bază

Subclasele pot conține și prin membri specifici (diferiți de cei preluați de la


superclase)

conf. dr. Cozgarea Adrian


Moştenirea
- exemplu -

Clasa: PERSOANA
Atribute:
CNP
Persoana NumePrenume
- superclasă - DataNaşterii
Metode:
Vârsta()

Clasa: ANGAJAT
Atribute:
CNP
Membri
NumePrenume
Angajat moşteniţi
DataNaşterii
- subclasă - Marca
(orice angajat este o persoană)
Profesia Membri
Metode: proprii
Vârsta()
TotalVenituri()
conf. dr. Cozgarea Adrian
Polimorfismul
= obiectele pot manifesta un comportament diferit la primirea aceluiași mesaj
(invocarea aceleiași metode)
Polimorfismul reprezintă capacitatea obiectelor de a se
comporta diferit la primirea aceluiaşi mesaj. Cu alte cuvinte,
polimorfismul permite ca obiecte diferite să conţină aceleaşi
operaţii, care însă vor executa acţiuni diferite.
Termenul de polimorfism vine din limba greacă şi înseamnă "mai
multe forme".

conf. dr. Cozgarea Adrian


Polimorfism prin supraîncărcare
Supraîncărcarea (overloading)= definirea, în aceeași clasă, a mai multor metode cu
aceeași denumire, diferențiate prin parametri
– Clasa CERC
• Desenează(XCentru, YCentru, Raza)

• Desenează(X1, Y1, X2, Y2)

conf. dr. Cozgarea Adrian


Polimorfism prin suprascriere/rescriere
(bazat pe moștenire)
Suprascrierea (overriding)= redefinirea, într-o clasă derivată, a unei metode
moştenite, prin modificarea corpului acesteia (antetul rămâne neschimbat)

Clasa: CERC
Atribute
... Aria= πR2
Metoda
Aria()

Clasa: ELIPSĂ
Atribute
... Aria= πR1R2
Metoda
Aria()

conf. dr. Cozgarea Adrian


Persistența

Obiect persistent - starea şi comportamentul său sunt conservate


între două execuţii ale programului care l-a generat.

Memorie internă (RAM)


Memorie externă
(HDD/SSD/STICK/DVD)
Obiecte
Obiecte Obiecte
Obiecte
volatile
persistente

conf. dr. Cozgarea Adrian


Exemplu ierarhie clase VB.NET
Class Persoana
Public CNP As String
Public NumePrenume As String
Public DataNastere As Date
Public Function Varsta() As Byte
...
End Function
End Class

Class Angajat
INHERITS Persoana ‘ => orice angajat va dispune de:
CNP, NumePrenume, DataNastere, metoda Varsta()
‘ membri specifici angajatilor:
Public Marca As Integer
Public Profesia As String
Public Function TotalVenituri() As Decimal
...
End Function
End Class
conf. dr. Cozgarea Adrian

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