Documente Academic
Documente Profesional
Documente Cultură
Programarea Orientată Pe Obiecte
Programarea Orientată Pe Obiecte
Programarea orientat pe obiecte (POO, uneori i Programarea orientat obiect) este o paradigm de programare.
2. Motenirea Unul dintre marile avantaje ale programrii orientate obiect este posibilitatea de a reutiliza codul existent. Posibilitatea proiectrii de noi clase folosind clase deja construite se numete motenire. Dac o clas A motenete o clas B, atunci variabilele i metodele clasei B vor fi considerate ca aparinnd i clasei A. Motenirea permite crearea unor clase de baz cu rolul de a stoca caracteristici comune unor clase diferite, astfel aceste proprieti nu vor trebui precizate n fiecare clas n parte.
Exemplu: Clasele triunghi, patrulater i cerc au structuri diferite, dar toate au o arie, un numr de laturi, perimetru, etc. Pentru ca n cele trei clase s nu se repete aceleai elemente, variabile i metode, soluia optim este proiectarea unei clase figur geometric, n care s se regseasc caracteristicile comune, i aceasta s fie motenit de toate cele trei clase n cauz.
n unele limbaje de programare care suport metoda orientat pe obiecte, cum ar fi C++, este permis chiar i suprancrcarea operatorilor standard predefinii. De exemplu operatorul + , destinat efecturii operaiei de adunare pentru numere reale poate fi fcut s execute i alte tipuri de adunri.
Clase i obiecte
Programarea orientat pe obiect (Programare Orientat Obiectual) este unul din cei mai importani pai fcui n evoluia limbajelor de programare spre o mai puternic abstractizare n implementarea programelor. Ea a aprut din necesitatea exprimrii problemei ntr-un mod mai natural fiinei umane. Astfel unitaile care alctuiesc un program se apropie mai mult de modul nostru de a gndi dect modul de lucru al calculatorului. Pn la apariia programrii orientate pe obiect programele erau implementate n limbaje de programare procedurale (C, Pascal) sau n limbaje care nici mcar nu ofereau o modalitate de grupare a instruciunilor n uniti logice (funcii, proceduri) cum este cazul limbajului de asamblare (assembler). Altfel spus o problem preluat din natur trebuia fragmentat n repetate rnduri astfel nct s se identifice elementele distincte, implementabile ntr-un limbaj de programare. O mare problem a programrii procedurale era separarea datelor de unitile care prelucrau datele(subrutinele), ceea ce fcea foarte dificil extinderea i ntreinerea unui program. Astfel s-a pus problema ca aceste dou entiti(date i subrutine) s fie grupate ntr-un anumit mod, astfel nct subrutinele s "tie" n permanen ce date prelucreaz i, mai mult dect att, ele s formeze un modul, adic o unitate care separ implementarea de interfa, ceea ce implic posibilitatea refolosirii codului. A aprut astfel conceptul de Nechita Dumitru Clasa a XI-a B
Colegiul National NICU GANE Falticeni clas. Clasa realizeaz, n spe, ceea ce am vzut mai nainte: grupeaz datele i unitile de prelucrare a acestora ntr-un modul, unindu-le astfel ntr-o entitate mult mai natural. Dei tehnica se numete "Programare Orientat Obiectual", conceptul de baz al ei este Clasa. Clasa, pe lng faptul c abstractizeaz foarte mult analiza/sinteza problemei, are proprietatea de generalitate, ea desemnnd o mulime de obiecte care mpart o serie de proprieti.
Exemplu:
clasa numr complex #include<stdio.h> #include<math.h> class Complex { float r,i; public: void Afiseaza(); float GetR(); float GetI(); void SetR(float r); void SetI(float i); void aduna(Complex x); }; float Complex::GetR() { return r; } float Complex::GetI() { return i; } void Complex::SetR(float r) { this->r = r; } void Complex::SetI(float i) { this->I = i; } void Complex::Afiseaza() { printf("%5.2f%ci*%5.2f", r, i>=0 ? '+' : '-', i>=0 ? i : -i ); } void Complex::aduna(Complex x) { r += x.GetR(); I += x.GetI(); }
Concluzii
Ideea POO (Programare Orientat Obiectual) este de a crea programele ca o colecie de obiecte, uniti individuale de cod care interacioneaz unele cu altele, n loc de simple liste de instruciuni sau de apeluri de proceduri. Obiectele POO sunt de obicei reprezentri ale obiectelor din viaa real (domeniul problemei), astfel nct programele realizate prin tehnica POO sunt mai uor de neles, de depanat i de extins dect programele procedurale. Aceasta este adevrat mai ales n cazul proiectelor software complexe i de dimensiuni mari, care se gestioneaz fcnd apel la ingineria programrii.