Documente Academic
Documente Profesional
Documente Cultură
Partea a II a
2
Obiectul
entitate abstractă sau care aparține lumii reale, cu identitate proprie, caracterizată
prin stare și comportament
3
Exemple de obiecte
ObjPet1 ObjPet2 ObjVet1
Specie: Felină Specie: Canidae Nume: Jan POL
Rasă: British Shorthair Rasă: German Shephard Telefon: 0770885566
Nume: Muffin Nume: Pepper Specialitate: Medicină generală
Dată naștere: 01/06/2016 Dată naștere: 01/12/2019 Dată naștere: 15/04/1985
Stare de spirit: Calm Metode Metode
Metode Latră() Consultă()
Toarce() Fuge()
Ataca()
4
Exemple de obiecte – schimbarea stărilor
ObjStudent1 Promoveaz ObjStudent1
ă An()
Nume: Popescu Sc Nume: Popescu
hi
m
Prenume: Alexandru bă Prenume: Alexandru
Sp
NumarMatricol:11582 e ci NumarMatricol:11582
a liz
Specialitate: Cardiologie ar Specialitate: Cardiologie
e(
An studiu: 2 ) An studiu: 3
Metode ObjStudent1 Metode
PromoveazaAn() Nume: Popescu PromoveazaAn()
SchimbSpecialitate() Prenume: Alexandru SchimbSpecialitate()
NumarMatricol:11582
Specialitate: Radiologie
An studiu: 2
Metode
5
PromoveazaAn()
SchimbSpecialitate()
Abstractizarea
Abstractizarea este procesul prin care se identifică și se rețin numai caracteristicile
esențiale ale realității modelate. Cel mai des, abstractizarea este întâlnită atunci când
obiectele cu aceleași atribute şi același comportament sunt grupate în tipuri abstracte
numite clase
Clasa reprezintă un tip de date obţinut prin abstractizarea unor obiecte similare.
O clasă este schiţa (modelul) unui obiect.
denumire;
set de atribute (date);
set de metode (operaţii).
Nume_clasa
Atribute
Metode
6
Modele de clase
ObjVet1
Nume: Jan POL
Veterinar Telefon: 0770885566
În contextul Specialitate: Medicină generală
Nume prezentat
Dată naștere: 15/04/1985
Telefon ObjVet1 și
Specialitate ObjVet2 sunt Metode
Data_nastere instanțe ale Consultă()
clasei Veterinar
Consulta()
ObjVet2
Nume: Michelle Oakley
Telefon: 0770885551
Specialitate: Medicină de urgență
Dată naștere: 26/09/1988
Metode 7
Consultă()
Clase (cont .)
Contract
Abstractizare Document
Factură
Mecanism prin care atributele şi metodele sunt grupate la nivelul unei clase,
accesarea lor din exterior depinzând de nivelul de vizibilitate al acestora:
Public* – acces nelimitat
Private* – accesibile doar din interiorul clasei
Protected* – accesibile doar din clasele derivate, în contextul moștenirii
Din exteriorul clasei de care aparțin, proprietățile obiectelor pot citite şi modificate în
anumite situații, gestionate prin intermediul unor metode publice (selectori & modificatori,
constructori & destructori) **
*cuvinte rezervate
** vom discuta despre aceste concepte la implementarea practică
10
Încapsularea
Veterinar Conturi_Bancare
11
Moștenirea
Procesul prin care atributele şi operațiile unei clase (clasă de bază, superclasă) sunt preluate
automat de o altă clasă (clasă derivată sau subclasă). Orice clasă derivată va fi de tipul (is a*)
clasei de bază. Prin moștenire se pot exprima relații deosebite între clase: clasificări, ierarhizări,
generalizări, specializări.
Utilitate: reutilizarea codului (noi clase sunt create pe baza celor existente)
Consecințe:
- Suprascrierea operațiilor – metodele definite de clasa de bază pot fi redefinite de clasele derivate
- Clasele abstracte – implică un arbore de moștenire în care o clasă abstractă, neinstanţiabilă,
furnizează semnăturile unor metode ce urmează a fi implementate de clase instanţabile, derivate din
aceasta
*cuvânt rezervat
12
Moștenirea
Angajați
Nume
Telefon
Data_nastere
Vârstă()
Personal_administrativ Veterinari
Departament Specialitate
NrLicenta
Consultații()
13
Polimorfismul
Capacitate a obiectelor de a reacționa diferit ca răspuns la același mesaj
recepționat
Tehnici de implementare :
Supraîncărcarea operaţiilor – aceeaşi operaţie este specificată în mai multe moduri
la nivelul aceleiaşi clase -> semnături + implementări diferite
Suprascrierea operaţiilor – operaţiile definite de o clasă de bază sunt suprascrise
de clasele derivate -> semnături identice, implementări diferite
Utilitate & consecinţă: flexibilitatea (ex: obiecte diferite procesează acelaşi mesaj
în mod diferit, în funcţie de tipul lor)
14
Polimorfismul
Angajați
1. În acest scenariu, pentru Nume
personalul administrativ se va Telefon
afișa data angajării, dar Data_nastere
pentru veterinari se va afișa
data la care s-a primit licența AflaDată()
suprascrie
Personal_administrativ Veterinari
Departament Specialitate
NrLicenta
DataLicenta
Consultă()
AflăData()
15
Persistența
16
Exerciții practice
1. Proiectați o clasă mijloace fixe – atributele for fi următoarele: denumire,
data achiziție, durată de amortizare. Metoda este de a returna numărul de
luni de amortizare rămase.
2. Considerăm că firma care are mijloacele fixe, are doar două categorii de
mijloace fixe – construcții și echipamente. Proiectați clasele necesare.
3. Proiectați clasele necesare pentru a reține datele unor angajați. Se vor reține
separat angajații care nu mai lucrează.
4. Administrațiile locale stochează date despre bunurile deținute de persoane.
Proiectați clasele necesare pentru a reține detalii despre terenuri, construcții
și automobile.
5. Proiectați un model care evidențiază polimorfismul
6. Proiectați un model care evidențiază încapsularea
7. Proiectați un model care evidențiază moștenirea
17