Sunteți pe pagina 1din 3

1

Programare obiectual

1.1. Introducere. Windows Form Designer . n cele ce urmeaz, vom ncerca s ne familiarizm cu programarea sub Windows. Aa cum bnuii, avnd n fa un sistem de operare grafic, programele pe care le vom scrie difer ntr -o oarecare msur de cele cu care suntei obinuii, n fapt, exist cteva diferene semnificative, dintre care putem aminti: Windows este un sistem de operare bazat pe interfee grafice, deci metodele de intrare -ieire alfanumerice, care acceseaz fiierele standard de intrare i ieire nu mai sunt efective. Aceasta, bineneles c nu nseamn ca nu le vom putea utiliza n programe. Windows este un sistem de operare n care, aa cum tii, se pot rula mai multe programe simultan. Se spune c Windows este un sistem de operare multitasking. n astfel de sisteme de operare, fiecare program (proces) va trebui s fie executat ntr -un spaiu de memorie binedeterminat, fr a avea posibilitatea ca mrimi dintr-un program s poat accesa adrese din spaiul altui program. Este motivul pentru care majoritatea limbajelor noi (C#, Java, etc) au renunat s ofere programatorilor posibilitatea manipulrii adreselor fizice prin intermediul pointerilor, prefernd n locul acestora utilizarea referinelor. Trebuie amintit faptul c, spre deosebire de aa numitele programe pe 16 bii, n Windows orice adres este generat pe 32, 64 sau chiar 128 de bii, depinznd de tipul procesorului cu care este dotat calculatorul. Spre deosebire de programarea pe 16 bii cu care suntei obinuii, n Windows intrrile -ieirile dintr-un program nu sunt n mod necesar sincrone cu execuia acestuia. Adic citirea sau afiarea datelor nu se face doar n momentul execuiei unor instruciuni de intrare -ieire, ci se poate face i asincron, n momentul producerii unor evenimente. n general, aplicaiile Windows sunt bazate exclusiv pe programarea orientat pe obiecte. Marea majoritate a mediilor de programare noi, ofer aplicaii de tip wizard, care uureaz semnificativ efortul programatorilor, n special pentru construirea interfeelor. Vom ncepe prin a studia un limbaj nou, aprut n acest mileniu, numit C# (se citete C sharp). Mediul de programare Microsoft Visual C# 2012 Express Edition, n care vom lucra n cele ce urmeaz, ofer un cadru (wizard) pentru construirea interfeelor, comun mediilor de dezvoltare de programe de tip Visual al firmei Microsoft, numit Windows Form Designer. Pentru a vedea ce ne ofer acest wizard, s deschidem un noi proiect Visual C#, numit Aplicatia1. Vei avea n fa o aplicaie ca i cea prezentat n figura. 1. Se poate observa c n centru imaginii se gsete o machet a formei care urmeaz s constituie interfaa grafic a aplicaiei. Toate controalele necesare proiectrii interfeei pot fi aduse pe aceast form prin mecanismul drag and drop, utiliznd tab-ul Toolbox din stnga imaginii.

Observaie: Daca tab-ul Toolbox lipsete, poate fi afiat alegnd din meniu View i respectiv Toolbox. n partea dreapt a imaginii, se pot vedea dou panouri. n dreapta sus se gsete panoul Solution Explorer, n care pot fi vzute toate proiectele deschise precum i fiierele asociate acestora. n dreapta jos, poate fi vzut panoul Properties. Acest panou conine toate proprietile elementelor selectate, oferind posibilitatea editrii acestora fr prea mare efort.
Page | 1

1.2. Un pic de programare obiectual n cadrul programrii obiectuale, introducem un tip nou de datp, care ncapsuleaz un set de atribute i un set de metode de acces la acestea, numit clas. O variabil de tipul unei clase, sau mai corect o instaniere a unei clase, poart denumirea de obiect. Datorit faptului c majoritatea aplicaiilor pot conine o mulime de clase i instanieri ale acestora, pentru a nelege structura acestora i relaiile dintre ele, a fost dezvoltat un limbaj special de descriere, numit UML (Universal Modeling Language). Vom ncerca n cele ce urmeaz, s introducem i cteva noini referitoare la acest limbaj. S presupunem de exemplu c avem o clas Prjitur. Reprezentarea UML a acestei clase poate fi vzut n fig. 2.a. Se poate observa c numele clasei este scris n partea de sus casetei. n mod absolut similar, se poate reprezenta i o instaniere a clasei, fie aceasta Savarin (fig. 2.b). Numele instanei este prezentat mpreun cu numele clasei, separate prin :. 1.2.1. Proprieti i cmpuri Proprietile i cmpurile (atributele) asigur accesul la datele coninute n interiorul unui obiect. Practic, prin aceasta se pot diferenia diferite obiecte ce reprezint instanieri ale aceleiai clase. Aceste date vor furniza n fapt starea obiectului respectiv. Att cmpurile ct i proprietile sunt mrimi de un anumit tip. Un cmp se utilizeaz pentru a reprezenta o mrime cantitativ asociat obiectului, iar o proprietate pentru a limita valoarea acesteia la un anumit interval. De exemplu, vom utiliza un cmp pentru a reprezenta proprietatea Zahar a obiectului Savarin i repectiv o proprietate pentru a limita valoarea acestui cmp, de exemplu ntre 0 i 6. Att la cmpuri ct i la proprieti, accesul se poate face n 2 moduri: public sau privat (private). Un membru public este accesibil ntregului cod al programului, n timp ce un membru privat este accesibil doar codului din interiorul clasei. Uzual, cmpurile private sunt acei membri ai clasei ale cror valori sunt supuse unor restricii. Ei sunt expui restului codului (adic accesibili) n general prin intermediul unor proprieti publice. O reprezentre UML a cmpurilor i proprietilor poate fi vzut n fig. 3. Se poate observa c n UML, cea de-a doua caset este rezervat cmpurilor i proprietilor. Prefixul + este utilizat pentru a reprezenta caracterul public al cmpului sau proprietii, iar prefixul pentru a reprezenta caracterul privat. Prefixul este urmat de numele cmpului sau proprietii i respectiv tipul acestora. 1.2.2. Metode O metod este o funcie expus de un obiect. Metodele sunt utilizate pentru a permite accesul la atributele obiectului. Pot fi de asemenea publice sau private. Prin intermediul metodelor se poate verifica sau modifica starea unui obiect, inclusiv n situaia n care accesul se face asupra unor atribute private. n UML, metodele sunt prezentate n caseta a treia (fig. 4). n fig. 4, adugat metoda AdaugZahar, care primete ca parametru cantitatea de zahr adaugata sub forma unui octet fr semn i returneaz noua valoare a atributului Zahar. n UML, se utilizeaz de asemenea identificatorii in, out i inout pentru a specifica sensul fluxului de date.

Page | 2

1.2.3. Constructori Iniializarea unui obiect este automat, alocarea memoriei pentru acesta facndu -se fr intervenia programatorului. Rezervarea memoriei se face de ctre o funcie numit constructor. Constructorul este o funcie avnd acelai nume cu numele clasei, care treebuie sa fie neaparat public i care poate sau nu s aib parametri. Orice clas are un constructor implicit, care nu are parametri. Acest constructor, n cazul utilizrii programelor de tip wizard, este adugat de ctre acestea i nu m ai trebuie definit. n C#, constructorul unui obiect este apelat prin intermediul cuvntului new.

O clas poate expune mai muli constructori neimplicii, care pot avea parametri. Acetia vor fi apelai de o manier smilar. 1.2.4. Destructori Destructorul este metoda care elibereaz memoria calculatorului de obiectele a cror ciclu de via a expirat. Spre deosebire de C++, n C# destructorul nu trebuie definit. Mediul de programare implementeaz un colector de reziduri (garbage collector), care periodic inspecteaz dac exist memorie alocat unor obiecte care nu mai exist i realizeaz eliberarea automat a acesteia.

http://freelearningnow.wikispaces.com/Clasa+a+XII-a

Page | 3

S-ar putea să vă placă și