CATEGORII DOCUMENTE |
Programarea Orientata pe Obiecte (OOP) este una dintre cele mai mari idei de programare aparuta in anii 1990. Ideea centrala a OOP este: organizarea programelor astfel incat ele sa reprezinte un ecou al modului in care lucrurile sunt puse impreuna in lumea reala.
Exemplu:
Pentru cine nu s-a jucat niciodata cu Lego, acesta consta in diferite bucati de plastic, de diferite culori si dimensiuni. Ele sunt dotate cu crescaturi si adancituri prin intermediul carora piesele pot fi conectate intre ele. Cu diferite componente Lego se poate forma aproape orice: masini, oameni, castele, case, etc. in functie de imaginatia fiecaruia. Fiecare piesa de Lego este un mic obiect care impreuna cu altele ajuta la crearea altor obiecte mai mari. Exact asa stau lucrurile si in programarea orientata pe obiecte: obiecte mici puse impreuna formeaza obiecte mari.
Programarea orientata pe obiecte este gandita dupa modelul lumii reale - obiectele sunt adesea formate din mai multe tipuri de obiecte mici.
Cand scriem programe intr-un limbaj orientat pe obiecte, nu definim obiecte ci clase de obiecte, unde o clasa reprezinta un sablon pentru mai multe obiecte cu caracteristici similare. Clasele intrupeaza toate caracteristicile unei multimi particulare de obiecte. De exemplu, ne putem gandi la clasa Copac care descrie caracteristicile tuturor copacilor (au radacini, trunchi si frunze, cresc, produc clorofila, isi schimba frunzele, etc). Clasa Copac reprezinta un model abstract pentru conceptul de copac - pentru a planta un copac, a-l atinge, a-i rupe o frunza sau a-l taia avem nevoie de un copac concret, altfel spus de o instanta a copacului. Bineinteles ca, odata ce avem clasa copac, putem crea oricate instante diferite ale copacului respectiv - "copaci concreti". Acestia pot avea caracteristici diferite (unii sunt inalti, altii pitici, unii isi pierd frunzele toamna, altii nu, etc)
O alta notiune specifica OOP este cea de obiect. Obiect sau instanta a clasei reprezinta acelasi lucru. Clasa este reprezentarea generala a unui obiect iar instanta /obiectul este reprezentarea concreta a clasei.
Fiecare clasa scrisa in Java are doua caracteristici de baza: atribute si comportament.
Atributele diferentiaza obiectele intre ele si determina aparenta, starea sau alte calitati ale obiectului in cauza. Daca ne gandim sa cream o clasa Masina, ea ar trebui sa includa urmatoarele atribute: culoare, stil, marca.
Atributele sunt definite in clase ca variabile. Tipul si numele variabilelor sunt definite in clase si fiecare obiect are valori proprii pentru fiecare atribut. Deoarece fiecare instanta a clasei poate avea valori diferite pentru variabilele sale, aceste variabile se mai numesc si variabile instanta.
Exemplu: O instanta a clasei masina, MasinaMea ar putea avea urmatoarele valori pentru atribute:
culoare = alb
stil = elegant
marca = Mercedes
Exista, de asemenea, si un alt tip de variabile numite variabile clasa. Diferenta dintre cele doua tipuri de variabile este aceea ca valorile variabilelor instanta sunt pastrate in instante si se schimba pentru fiecare instanta iar valorile variabilelor clasa sunt pastrate in clasa si nu se schimba pentru fiecare instanta. Asupra diferentei dintre cele doua tipuri de variabile o sa revin intr-un capitol urmator.
Comportamentul unei clase determina cum opereaza o instanta a unei clase. De exemplu, cum reactioneaza un obiect atunci cand un alt obiect sau o alta clasa ii cere sa faca ceva. Sa revenim la clasa Masina. Comportamentul unei masini consta in: porneste, opreste, franeaza, schimba viteza, schimba directia, etc.
Pentru a defini comportamentul unei clase se definesc metode, echivalentul functiilor sau procedurilor din alte limbaje de programare. Spre diferenta de alte limbaje de programare, in Java nu se pot defini functii in afara claselor. Prin urmare, metodele sunt functii definite in interiorul claselor care opereaza in instantele claselor respective.
Metoda unui obiect poate fi apelata de catre un alt obiect sau o alta clasa.
Ca si in cazul atributelor, exista doua tipuri de metode: metode instanta si metode clasa. Metodele instanta opereaza doar in cadrul instantei unei clase. In schimb, metodele clasa opereaza in interiorul clasei.
Obiectul este o variabila care are o structura si o stare. Fiecare obiect dispune de operatii prin intermediul carora i se poate manipula starea.
Obiectul trebuie privit ca o unitate atomica pe care utilizatorul nu ar trebui sa o disece. De exemplu, cand lucram cu numere intregi, nu ne punem problema reprezentarii lor. Utilizatorul nu are acces direct la partile constituente ale unui obiect sau la implementarea sa; acestea vor putea fi accesate doar prin intermediul metodelor care au fost furnizate impreuna cu obiectul. Gruparea datelor si a operatiilor care pot fi efectuate asupra acestor date, avand grija ca detaliile de implementare sa fie ascunse, poarta numele de incapsulare.
Unul din principalele scopuri ale OOP este refolosirea codului. Limbajele de programare orientate pe obiecte furnizeaza mai multe mecanisme in acest scop.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1692
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved