Cuprins
- 3.1 Obiecte
- 3.2 Încapsularea informatiilor în interiorul obiectelor
- 3.3 Clase de obiecte
- 3.4 Derivarea claselor de obiecte
- 3.5 Interfete spre obiecte
Extras din curs
Informatiile pe care le reprezentam în memoria calculatorului sunt rareori atât de simple precum culorile sau literele. În general, dorim sa reprezentam informatii complexe, care sa descrie obiectele fizice care ne înconjoara sau notiunile cu care operam zilnic, în interiorul carora culoarea sau o secventa de litere reprezinta doar o mica parte. Aceste obiecte fizice sau notiuni din lumea reala trebuiesc reprezentate în memoria calculatorului în asa fel încât informatiile specifice lor sa fie pastrate la un loc si sa se poata prelucra ca un tot unitar. Sa nu uitam însa ca, la nivelul cel mai de jos, informatia atasata acestor obiecte continua sa fie tratata de catre compilator ca un sir de numere naturale, singurele informatii reprezentabile direct în memoria calculatoarelor actuale.
Pentru a reprezenta în memoria interna obiecte fizice sau notiuni, este nevoie sa izolam întregul set de proprietati specifice acestora si sa îl reprezentam prin numere. Aceste numere vor ocupa în memorie o zona compacta pe care, printr-un abuz de limbaj, o vom numi, într-o prima aproximare, obiect. Va trebui însa sa aveti întotdeauna o imagine clara a deosebirii fundamentale dintre un obiect fizic sau o notiune si reprezentarea acestora în memoria calculatorului.
De exemplu, în memoria calculatorului este foarte simplu sa cream un nou obiect, identic cu altul deja existent, prin simpla duplicare a zonei de memorie folosite de obiectul pe care dorim sa-l dedublam. În realitate însa, este mult mai greu sa obtinem o copie identica a unui obiect fizic, fie el o simpla foaie de hârtie sau o bancnota de 10000 de lei.
Sa revenim însa la numerele naturale. Din moment ce ele sunt singurele entitati reprezentabile în memoria calculatorului, este firesc ca acesta sa fie echipat cu un set bogat de operatii predefinite de prelucrare a numerelor. Din pacate, atunci când facem corespondenta dintre numere si litere de exemplu, nu ne putem astepta la un set la fel de bogat de operatii predefinite care sa lucreze cu litere. Dar, tinând cont de faptul ca în cele din urma lucram tot cu numere, putem construi propriile noastre operatii specifice literelor, combinând în mod corespunzator operatiile numerice predefinite.
De exemplu, pentru a obtine dintr-o litera majuscula, sa spunem ?A?, corespondenta ei minuscula ?a?, este suficient sa adunam un deplasament numeric corespunzator, presupunând ca literele mari si cele mici sunt numerotate în ordine alfabetica si imediat una dupa cealalta în conventia de reprezentare folosita. În setul ASCII deplasamentul este 32, reprezentarea lui ?A? fiind 65 iar reprezentarea lui ?a? fiind 97. Acest deplasament se pastreaza pentru toate literele din alfabetul englez si român, la cel din urma existând totusi o exceptie în cazul literei ?S?.
Putem sa extindem cerintele noastre mai departe, spunând ca, atunci când analizam un obiect fizic sau o notiune pentru a le reprezenta în calculator, trebuie sa analizam nu numai proprietatile acestora dar si modul în care acestea pot fi utilizate si care sunt operatiile care pot fi executate asupra lor sau cu ajutorul lor. Acest set de operatii va trebui ulterior sa-l redefinim în contextul multimii de numere care formeaza proprietatile obiectului din memoria calculatorului, si sa îl descompunem în operatii numerice preexistente. În plus, trebuie sa analizam modul în care reactioneaza obiectul atunci când este supus efectului unor actiuni exterioare. Uneori, setul de operatii specifice unui obiect împreuna cu modul în care acesta reactioneaza la stimuli exteriori se numeste comportamentul obiectului.
De exemplu, daca dorim sa construim un obiect care reprezinta o minge de forma sferica în spatiu, este necesar sa definim trei numere care sa reprezinte coordonatele x, y si z relativ la un sistem de axe dat, precum si o valoare pentru raza sferei. Aceste valori numerice vor face parte din setul de proprietati ale obiectului minge. Daca mai târziu vom dori sa construim o operatie care sa reprezinte mutarea în spatiu a obiectului minge, este suficient sa ne folosim de operatiile cu numere pentru a modifica valorile coordonatelor x, y si z.
Desigur, obiectul minge este insuficient descris prin aceste coordonate si, pentru a simula în calculator obiectul real este nevoie de multe proprietati suplimentare precum si de multe operatii în plus. Dar, daca problema pe care o avem de rezolvat nu necesita aceste proprietati si operatii, este preferabil sa nu le definim în obiectul folosit pentru reprezentare. Rezultatul direct al acestui mod de abordare este acela ca vom putea defini acelasi obiect real în mai multe feluri pentru a-l reprezenta în memoria interna. Modul de definire depinde de problema de rezolvat si de programatorul care a gândit reprezentarea. De altfel, aceste diferente de perceptie ale unui obiect real exista si între diversi observatori umani.
Din punctul de vedere al programarii, un obiect este o reprezentare în memoria calculatorului a proprietatilor si comportamentului unei notiuni sau ale unui obiect real.
Preview document
Conținut arhivă zip
- Reprezentarea Informatiilor cu Obiecte.doc