notiuni de programare obiectuala - Informatica aplicata si ...
notiuni de programare obiectuala - Informatica aplicata si ...
notiuni de programare obiectuala - Informatica aplicata si ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capitolul 1. … noţiuni <strong>de</strong> <strong>programare</strong> obiectuală 19Nu avem în acest moment la în<strong>de</strong>mână nici o tehnică prin care să fim obligaţi săfolo<strong>si</strong>m doar funcţia <strong>de</strong> citire pentru atribuirea <strong>de</strong> valori ordonatei unui punct, sau caresă ne oblige să atribuim doar valori pozitive acesteia.1.2.1 Ce este o clasă? Ce este un obiect?Din cele arătate mai sus, apare i<strong>de</strong>ea introducerii unui nou „tip”, care săîncapsuleze o structură <strong>de</strong> date şi un set <strong>de</strong> funcţii <strong>de</strong> interfaţă care acţionează asupradatelor din structură. În plus, noul tip trebuie să a<strong>si</strong>gure diferite niveluri <strong>de</strong> acces ladate, astfel încât anumite date să nu poată fi accesate <strong>de</strong>cât prin intermediul unorfuncţii <strong>de</strong> interfaţă şi nu în mod direct. Acest nou tip este <strong>de</strong>numit clasă.În limbajul C++ clasele se obţin prin completarea structurilor uzuale din limbajulC, cu setul <strong>de</strong> funcţii necesare implementării interfeţei obiectului. Aceste funcţiipoartă <strong>de</strong>numirea <strong>de</strong> meto<strong>de</strong>.Pentru realizarea izolării reprezentării interne <strong>de</strong> restul programului, fiecăruimembru (dată din cadrul structurii, sau metodă) i se asociază nivelul <strong>de</strong> încapsularepublic sau private (fig. 1.13).Un membru public corespun<strong>de</strong> din punct <strong>de</strong> ve<strong>de</strong>re al nivelului <strong>de</strong> acce<strong>si</strong>bilitate,membrilor structurilor din limbajul C. El poate fi accesat din orice punct alprogramului, fără să se impună vreo restricţie asupra lui.Membrii private sunt acce<strong>si</strong>bili doar în domeniul clasei, adică în clasa propriuzisăşi în toate funcţiile membre.Membri publici.Pot fi accesaţi şidin afara claseiFuncţii <strong>de</strong>interfaţa(meto<strong>de</strong>)Membri privaţi. Pot fiaccesaţi doar din cadrulFig. 1.13. Acce<strong>si</strong>bilitatea membrilor claseiSintaxa folo<strong>si</strong>tă pentru <strong>de</strong>clararea unei clase este următoarea:class Nume_clasa {[ [private :] lista_membri_1 ][ [public :] lista_membri_2 ]};Cuvântul cheie class indică faptul că urmează <strong>de</strong>scrierea unei clase, având numeleNume_clasa. Numele clasei poate fi orice i<strong>de</strong>ntificator (orice nume valid <strong>de</strong> variabilă),dar trebuie să fie unic în cadrul domeniului <strong>de</strong> existenţă respectiv.Descrierea clasei constă din cele două liste <strong>de</strong> membri, prefixate eventual <strong>de</strong>cuvintele cheie private şi public.Observaţie: Dacă în <strong>de</strong>claraţia unei clase apare o listă <strong>de</strong> membri fără nici unspecificator <strong>de</strong> acces, aceşti membri vor fi implicit privaţi.H. Vălean, 2004