Programare orientată pe obiecte

De la Wikipedia, enciclopedia liberă

Programarea orientată pe obiecte (POO, uneori şi Programarea orientată obiect) este o tehnică de programare.

Ideea POO este de a crea programele ca o colecţie de obiecte, unităţi individuale de cod care interacţionează unele cu altele, în loc de simple liste de instrucţiuni sau de apeluri de proceduri (vezi şi programare procedurală).

Obiectele POO sînt de obicei reprezentări ale obiectelor din viaţa reală (domeniul problemei), astfel încît programele realizate prin tehnica POO sînt mai uşor de înţeles, de depanat şi de extins decît programele procedurale. Aceasta este adevărată mai ales în cazul proiectelor software complexe şi de dimensiuni mari, care se gestionează făcînd apel la ingineria programării.

[modifică] Principii de bază

Acest articol are nevoie de ajutorul dumneavoastră!
Puteţi contribui la dezvoltarea şi îmbunătăţirea lui apăsând butonul "modifică pagina".
  • Abstractizarea – Posibilitatea ca un program să ignore unele aspecte ale informaţiei pe care o manipulează, adică posibilitatea de a se concentra asupra esenţialului. Fiecare obiect în sistem are rolul unui “actor” abstract, care poate executa acţiuni, îşi poate modifica şi comunica starea şi poate comunica cu alte obiecte din sistem fără a dezvălui cum au fost implementate acele facilitaţi. Procesele, funcţiile sau metodele pot fi de asemenea abstracte, si atunci când sunt, sunt necesare o varietate de tehnici pentru a extinde abstractizarea:
  • Încapsularea – numită şi ascunderea de informaţii: Asigură faptul că obiectele nu pot schimba starea internă a altor obiecte în mod direct (ci doar prin metode puse la dispoziţie de obiectul respectiv); doar metodele proprii ale obiectului pot accesa starea acestuia. Fiecare tip de obiect expune o interfaţă pentru celelalte obiecte care specifică modul cum acele obiecte pot interacţiona cu el.
  • Polimorfismul – este abilitatea de a procesa obiectele diferit în funcţie de tipul lor sau de clasa lor. Mai exact, este abilitatea de a redefini metode pentru clasele derivate. De exemplu pentru o clasă Figura putem defini o metodă arie. Dacă Cerc, Dreptunghi, etc. vor extinde clasa Figura, acestea pot redefini metoda arie.
  • Moştenirea – organizează şi facilitează polimorfismul şi încapsularea permiţând definirea si crearea unor clase specializate plecând de la clase (generale) care sunt deja definite - acestea pot împărtăşi (şi extinde) comportamentul lor fără a fi nevoie de redefinirea aceluiaşi comportament. Aceasta se face de obicei prin gruparea obiectelor în clase şi prin definirea de clase ca extinderi ale unor clase existente.Conceptul de mostenire permite construirea unor clase noi, care pastreaza caracteristicile si comportarea, deci datele si functiile membru, de la una sau mai multe clase definite anterior, numite clase de baza, fiind posibila redefinirea sau adaugarea unor date si functii noi.Se utilizeaza ideea:” Anumite obiecte sunt similare dar in acelasi timp diferite”. O clasa mostenitoare a uneia sau mai multor clase de baza se numeste clasa derivata. Esenta mostenirii consta in posibilitatea refolosirii lucrurilor care functioneaza.

În alte limbi