1.1. No?iune de obiect ?i clas?

1.2. No?iune de incapsulare, mo?tenire ?i polimorfism

1.1. ?ncapsulare

?ncapsularea ?n POO (engl. encapsulation) este unirea ?ntr-un singur tot a datelor ?i metodelor, ceea ce permite ascunderea structurii interne de date ale obiectului ?i realizarea metodelor lui de restul programului. Celelalte obiecte au acces numai la interfa?a obiectului. Interfa?a este reprezentat? prin membrii publici prin care se efectueaz? toate interac?iunile cu acest obiect.

?ncapsularea este un mecanism care leag? ?ntr-un tot ?ntreg codul ?i datele, p?str?ndu-le pe ambele ?n siguran?? contra interven?iilor din afar? ?i de utiliz?ri gre?ite. ?n plus, ?ncapsularea asigur? crearea obiectelor. Un obiect este o entitate logic? ce ?ncapsuleaz? at?t date, c?t ?i codul care manevreaz? aceste date. ?ntr-un obiect, o parte din cod ?i/sau date pot fi particulare (private sau protejate) acelui obiect ?i inaccesibile pentru oricine din afara lui. Astfel, un obiect dispune de un nivel semnificativ de protec?ie care ?mpiedic? modificarea accidental? sau utilizarea incorect? a p?r?ilor obiectului de c?tre sec?iuni ale programului cu care acestea nu au leg?tur?.

1.2. Mo?tenire

Mo?tenirea ?n POO (engl. inheritance) reprezint? proprietatea obiectului, care const? ?n aceea c? caracteristicile unui obiect (obiectul-p?rinte) pot fi transmise unui alt obiect (obiect-fiu) f?r? descrierea lor repetat?. Mo?tenirea simplific? descrierea obiectelor ?i admite clasificarea lor.

De exemplu, clasa furnici face parte din clasa de insecte f?r? aripi, care se afl? ?n vasta clas? de insecte. O astfel de clasificare se nume?te taxonomie. ?n general, taxonomia este o ?tiin?? care se ocup? cu stabilirea legilor de clasificare ?i de sistematizare a domeniilor din realitate cu o structur? complex?. ?n Fig. 1.1 este dat un exemplu
clasic redus de o ierarhie taxonomic?.

Ierarhie taxonomica


Alt exemplu: clasa licee teoretice face parte din clasa de licee, care se afl? intr-o clas? mai mare de institu?ii de ?nv???m?nt liceal, care, la r?ndul s?u, se g?se?te ?n marea clas? de institu?ii de ?nv???m?nt.

F?r? utilizarea claselor cu proprietate de mo?tenire fiecare obiect ar trebui definit explicit?ndu-se toate caracteristicile sale. ?ns?, prin folosirea clasific?rilor, un obiect are nevoie doar de definirea acelor calit??i care ?l fac unic ?n clasa sa. Mecanismul mo?tenirii este acela care face posibil ca un obiect s? fie un exemplar specific al unui caz mai general. Mo?tenirea este un aspect foarte important al program?rii orientate pe obiecte.

?nc? un exemplu. ?n baza clasei ce reprezint? frac?ii ra?ionale f?r? semn de tipul(unde m este num?r?tor, iar n este numitor) putem crea clasa de numere ra?ionale f?r? semn de tipul, ?n care la c?mpurile mo?tenite m, n se mai adaug? partea ?ntreag? p.

Mai departe, ?n baza clasei numere ra?ionale f?r? semn vom crea clasa de numere ra?ionale de tipul ±ad?ug?nd informa?ii despre semnul num?rului.

Exerci?iul 1.1. Da?i alte exemple de clasificare taxonomic? din diferite domenii de activitate a omului.

1.3. Polimorfism

?n limbajele de programare orientate  pe  obiecte  polimorfismul  este  caracterizat  prin  fraza  „o interfa??, metode multiple”. Polimorfismul ?n POO (engl. polymorphism) este capacitatea obiectului de a selecta, din mai multe metode metoda corect?, ?n dependen?? de tipul de date, primite ?n mesaj, sau, altfel spus, posibilitatea de a denumi identic diferite ac?iuni la diferite niveluri ale ierarhiei de clase. Polimorfismul simplific? programarea, deoarece selectarea ac?iunii necesare se realizeaz? automat.

D?m un exemplu de polimorfism din matematic?. Una ?i aceea?i expresie a+b va fi interpretat? ?n conformitate cu tipul operanzilor opera?iei de adunare. Dac? a ?i b sunt dou? numere, expresia dat? reprezint? suma a dou? numere, dac? a ?i b sunt dou? matrice – rezultatul va fi suma matricelor, dac? a ?i b sunt doi vectori – expresia reprezint? vectorul rezultant etc.

?n limbajele de programare orientate pe obiecte se folosesc mai multe mecanisme prin care se realizeaz? principiul de polimorfism. Cele mai principale sunt suprascrierea ?i supra?nc?rcarea func?iilor ?i operatorilor, posibilitatea de a specifica valorile implicite pentru parametri, regulile de atribuire ?ntre obiecte ale claselor descendente, func?iile virtuale.

_________________________
Autorul: dr.conf. S. Pereteatcu

1.1. Noțiune de obiect și clasă

Programarea orientată pe obiecte (POO) este tehnologia de programare în care programul este reprezentat ca o colecție de obiecte discrete, care conțin niște seturi de structuri de date și proceduri ce interacționează cu alte obiecte.

No?iune de obiect. ?n dic?ionarele explicative ale limbii rom?ne sunt descrise mai multe explica?ii ale cuv?ntului „obiect”:

  • corp solid, cunoscut direct cu ajutorul sim?ului;
    • lucru sau complex de lucruri ap?rute ca rezultat al procesului de munc? (de exemplu, obiect de consum, obiect de uz casnic);
    • materie asupra c?reia este orientat? activitatea spiritual? sau artistic? (de exemplu, obiect de cercetare, obiect de descriere);
    • fiin?? sau lucru pentru care cineva manifest? un sentiment (de exemplu, obiect de admira?ie);
    • disciplin? de studiu ?ntr-o institu?ie de ?nv???m?nt;
  • filos. Corp sau fenomen existent ?n realitate, ?n afara subiectului ?i independent de con?tiin?a acestuia;
  • lingv. Parte de propozi?ie care indic? asupra cui este orientat? ac?iunea verbului; complement.

Aceste defini?ii cuprind diferite domenii ce ?in de natura ?i activitatea omului. Ele toate pot fi modelate ?n POO prin declararea claselor ?i crearea obiectelor respective.

 

Obiectul ?n programare reprezint? modulul de program care ?ndepline?te urm?toarele cerin?e principale:–        ?ntrune?te date (caracterizeaz? propriet??ile obiectului sau ce cunoa?te obiectul) ?i opera?iile asupra lor (se mai numesc metode ?i caracterizeaz? comportarea obiectului sau posibilit??ile obiectului, adic? ceea ce poate face obiectul);

–        posed? propriet??ile de mo?tenire, ?ncapsulare ?i polimorfism.

Obiectele interac?ioneaz? ?ntre ele prin transmiterea mesajelor unul altuia.

No?iune de clas?. O clas? ?n programare ?ntrune?te toate obiectele de una ?i aceea?i natur?. Obiectele care apar?in uneia ?i aceleia?i clase posed? una ?i aceea?i structur?, comportare ?i rela?ii cu obiecte din alte clase.

 

Clasa este tipul abstract de date creat de utilizator (programator). ?n clas? se descriu ?mpreun? c?mpuri de date ?i metode sub form? de func?ii membre. Metodele efectueaz? opera?ii asupra acestor date ?i alte ac?iuni ce caracterizeaz? comportamentul obiectelor clasei respective. ?n baza claselor deja create exist? posibilitatea de a crea clase derivate care mo?tenesc propriet??ile claselor de baz?.

Exemplarul de obiect ?n POO se mai nume?te instan?? (engl. instance), este un obiect concret din setul de obiecte ale uneia ?i aceleia?i clase. Crearea exemplarului de obiect al unei clase se nume?te instan?ierea obiectului.

C?nd cre?m o clas?, definim implicit un nou tip de date. Deci, un obiect este o variabil? de un tip definit de utilizator.

_________________________
Autorul: dr.conf. S. Pereteatcu

Translate Переводчик

Подписка на новости

SmartResponder.ru
Ваш e-mail: *
Ваше имя: *

Хостинг для Wordpress сайтов