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

рассказать друзьям и получить подарок

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Translate Переводчик

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

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

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