12.07.2015 Views

notiuni de programare obiectuala - Informatica aplicata si ...

notiuni de programare obiectuala - Informatica aplicata si ...

notiuni de programare obiectuala - Informatica aplicata si ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!