220 likes | 446 Views
BAZELE PROGRAM Ă RII PE OBIECTE VISUAL BASIC .NET. Conf univ dr Botezatu Cezar UNIVERSITATEA ROMÂNO AMERICANĂ Anul I LICENȚĂ IM. CURS 4:. CLASE OBIECTE. Conceptul de Clasă de obiecte .
E N D
BAZELE PROGRAMĂRII PE OBIECTEVISUAL BASIC .NET ConfunivdrBotezatuCezar UNIVERSITATEA ROMÂNO AMERICANĂ Anul I LICENȚĂ IM
CURS 4: CLASE OBIECTE
Conceptul de Clasă de obiecte. O clasă de obiecte este o abstracţie care descrie toate caracteristicile comune ale unui grup de obiecte şi care permite crearea de noi obiecte. Ea descrie o mulţime de obiecte cu atribute similare, operaţii similare, aceeaşi semantică şi aceleaşi relaţii cu alte obiecte. Exemple de clase: • Bicicletă; • Fereastră; • Triunghi;
Conceptul de Clasă de obiecte. • Fiecare clasă descrie un ansamblu de obiecte individuale. În mod evident orice obiect aparţine unei clase şi este considerat, În momentul în care vrem să-l precizăm sau referim, ca o instanţă a acelei clase. • Fiecare obiect este deci o instanţă a clasei sale. Fiecare instanţă a clasei are propriile sale valori pentru fiecare atribut, dar partajează numele atributelor şi operaţiilor cu alte instanţe ale clasei de obiecte.
Conceptul de Clasă de obiecte. • Clasa reprezintă un ansamblu de obiecte cu stări comportamentale asemănătoare, sau, altfel spus, o anumită categorie de obiecte ale cărei proprietăţi şi metode pot fi moştenite într-o subclasă. • O clasă stochează şi manipulează date şi poate returna valori către codul de program care utilizează un obiect al acelei clase. O clasă descrie un şablon pentru declaraţii ulterioare de variabile, dar nu alocă memorie pentru o variabilă.
Conceptul de Clasă de obiecte. Fiecare instanţă are o identitate unică, diferenţiindu-se de alte instanţe create pornind de la aceeaşi clasă. Când o instanţă trebuie să execute o operaţie, selectarea operaţiei are loc în clasa asociată instanţei. Diferenţele existente în executarea aceleeaşi operaţii pentru instanţe diferite ale aceleeaşi clase se datorează diferenţei dintre mediile în care se execută operaţia, adică diferenţei dintre valorile de instanţă. De asemenea, diferite instanţe sunt manipulate prin secvenţe diferite ale operaţiilor şi, ca rezultat, au stări interne diferite.
Conceptul de Clasă de obiecte. O clasă are un identificator (un nume) şi câmpuri membre. Se pot crea clase în cadrul unor module specifice fiecărei clase, numite module de clasă. Observaţie: • Clasele de obiecte reprezintă generalizări ale obiectelor folosite în program, iar procesul de generalizare creşte capacitatea de refolosire a obiectelor. • Implementarea unei operaţii la un moment dat se numeşte metodă. Pentru o operaţie pot exista mai multe metode din care un obiect va selecta ce metodă va executa într-o situaţie particulară.
Conceptul de Clasă de obiecte. • În concluzie, putem considera clasa ca fiind definirea structurii informaţiilor şi a operaţiilor pentru obiecte, iar instanţa ca fiind definirea stării unui obiect individual. • În modelele de obiecte ale unei aplicaţii informaţiile specifice sunt memorate de obiectele sale şi aceste informaţii pot fi manipulate numai când obiectele execută operaţii.
Conceptul de Clasă de obiecte. • Clasa este de fapt o entitate statică, având interfaţă şi proprietăţi bine determinate. Ea poate fi definită într-un limbaj declarativ sau în mod grafic. • Subclasa defineşte comportamentul modului de realizare a obiectului derivat dintr-o clasă de bază; • Tipul este o descriere abstractă a unui grup de entităţi asemănătoare; • Subtipul este o parte a comportamentului.
Conceptul de Clasă de obiecte În această abordare deosebit de importante sunt conceptele de identitate, polimorfism, moştenire şi încapsulare. • Identitatea semnifică faptul că obiectele sunt entităţi discrete şi distincte. O fereastră, un formular, un control, un fişier sunt obiecte. Un obiect poate fi concret sau conceptual. Fiecare obiect posedă propria sa identitate.
Clase de obiecte - Polimorfismul • Polimorfismul reprezintă capacitatea unui obiect de a-şi modifica forma. Într-un limbaj de programare cu obiecte, polimorfismul înseamnă că aceeaşi operaţie se comportă diferit asupra unor clase diferite. • Polimorfismul – se manifestă prin reacţii diferite ale diverselor obiecte la un acelaşi mesaj. • Existenţa unor operaţii (sau metode) diferite, cu acelaşi nume, dar cu comportament diferit, se numeşte polimorfism. Utilizatorul nu trebuie să se preocupe care anume operaţie este apelată.
Clase de obiecte - Polimorfismul În orientarea obiect prin polimorfism se înţelege faptul că o operaţie poate fi implementată diferit (să aibă comportament diferit) în clase diferite sau că un atribut are sensuri diferite pentru clase diferite. Exemple: • a muta o Bicicletă; • a muta o Fereastră; • a muta un Triunghi; Operaţia a muta înseamnă lucruri diferite, depinzând de obiectul asupra căruia se aplică.
Clase de obiecte - Polimorfismul • Implementarea concretă a unei operaţii într-o anumită clasă se numeşte metodă. • Reluând exemplu anterior, a muta o Bicicletă este diferit de a muta o Fereastră pe ecran şi diferit de a muta un Triunghi pe hârtie, dar la apelul operaţiei a muta nu apare nici o confuzie, întrucât apelul se face întotdeauna dintr-o clasă şi, ca urmare, operaţia îşi va cunoaşte clasa, deci şi implementarea.
Clase de obiecte - Moştenirea • Moştenirea permite partajarea atributelor şi operaţiilor comune între clase păstrând, în acelaşi timp, diferenţele. O clasă poate fi rafinată în subclase din ce în ce mai fine. Fiecare subclasă moşteneşte toate proprietăţile superclasei sale şi adaugă propriile sale proprietăţi. • De exemplu: Considerăm clasa Triunghi. Putem defini în cadrul clasei Triunghi clasele Triunghiisoscel şi Triunghiechilateral care moştenesc din această clasă poziţia pe hârtie, respectiv operaţia a muta. • a muta un triunghi;
Clase de obiecte - Moştenirea Caracteristicile comune ale obiectelor sau claselor de obiecte sunt colectate în cadrul claselor, respectiv al superclaselor sau claselor abstracte, prin generalizare şi/sau agregare. Similitudinile, sau caracteristicile comune pot fi apoi moştenite de clasele sau obiectele iniţiale şi pot fi partajateîntre anumite clase. Se obţine astfel o ierarhie de moştenireîn care clasele generalizate se găsesc la nivele superioare (şi sunt numite superclase sau părinţi), iar clasele care specializează o clasă existentă se vor găsi la nivele inferioare (şi sunt denumite subclase sau descendenţi).
Clase de obiecte - Moştenirea • Ierarhia de moştenire poate avea mai multe nivele şi poate conţine clase concrete, definite pentru a crea instanţe şi clase abstracte, care nu au instanţe, dar sunt construite pentru a asigura moştenirea. • Moştenirea – reprezintă transmiterea de proprietăţi şi metode. Moştenirea este marcată de o definire suplimentară şi transmite proprietăţile şi metodele clasei. Relaţia de moştenire între clase dezvoltă clase derivate, adică subclase.
Clase de obiecte - Moştenirea Moştenirea poate fi: • simplă, când o subclasă are o singură clasă părinte; • multiplă, când o subclasă moşteneşte proprietăţi şi metode ale mai multor clase părinte. Tehnicile despre obiecte promovează partajarea (sharing) la diverse nivele, “Partajare” poate însemna transmiterea aceloraşi stucturi de date şi, respectiv, operaţii de-a lungul unor clase dintr-o ierarhie de clase, şi acest lucru are un efect benefic asupra economisirii de spaţiu.
Clase de obiecte - Moştenirea Observaţie: • Dacă o clasă moşteneşteo altă clasă atunci ea moşteneşte toate atributeleşi operaţiile clasei de bază, iar din punctul de vedere al codului, acestea sunt aceleaşi cu cele ale clasei de bază, şi nu copii ale lor. • Pe de altă parte, partajarea oferă posibilitatea reutilizării proiectării, respectiv a codului anumitor clase, în proiecte ulterioare. Reutilizarea nu vine însă de la sine, ea trebuie planificată cu grijă în momentul proiectării.
Clase de obiecte - Încapsularea Încapsularea reprezintă combinarea datelor şi metodelor într-o singură structură de date, definind totodată modul în care obiectul şi restul programului pot referi datele din obiect. În obiecte/clase de obiecte sunt ascunse atât structura cât şi implementarea operaţiilor prin procesul de încapsulare.
Clase de obiecte - Încapsularea Încapsularea – reprezintă conceptul care defineşte apartenenţa unor proprietăţi şi metode faţă de un obiect. Încapsularea protejează obiectele de manevre eronate din afară.