Extras din proiect
Introducere
Programarea orientata pe obiecte este unul din cei mai importanti pasi facuti in evolutia limbajelor de programare spre o mai puternica abstractizare in implementarea programelor.
Intrebarea este: la ce se refera aceasta abstractizare, cand vine vorba de un limbaj de programare?
Ea a aparut din necesitatea exprimarii problemei intr-un mod mai natural fiintei umane. Astfel unitatile care alcatuiesc un program se apropie mai mult de modul nostru de a gandi decat modul de lucru al calculatorului. Pana la aparitia programarii orientate pe obiecte programele erau implementate in limbaje de programare procedurale (C,Pascal) sau limbaje care nici macar nu ofereau o modalitate de grupare a intructiunilor in unitati logice(functii, proceduri) cum este cazul limbajului de asamblare (assembler).
Altfel spus o problema preluata din natura trebuie fragmentata in repetate randuri astfel incat sa se identifice elementele distincte, implementabile intr-un limbaj de programare. O mare problema a programarii procedurale era separarea datelor de unitatile care prelucrau datele(subrutinele), ceea ce facea foarte dificila extinderea si intretinearea unui program. Astfel s-a pus problema ca aceste doua entitati(date si subrutine) sa fie grupate intr-un mod , astfel incat subrutinele sa stie in permanenta ce date prelucreaza si , mai mult decat atat, ele sa formeze un modul , adica o unitate care separa implementearea interfata, ceea ce implica posibilitatea refolosirii codului.
A aparut astfel conceptul de clasa. Clasa realizeaza, in speta, ceea ce am vazut mai inainte: grupeaza datele si unitatile de prelucrare a acestora intr-un modul, unindu-le astfel intr-o entitate mai mult naturala.
Desi tehnica se numeste “Programare orientata pe obiecte”, conceptul de baza al ei este Clasa. Clasa, pe langa faptul ca abstractizeaza foarte mult analiza/sinteza problemei are proprietatea de generalitate, ea desemnand o multime de obiecte care impart o serie de proprietati.
Programarea orientata pe obiecte este calea prin care programele sunt gandite in termeni de obiecte (lucruri) care alcatuiesc un sistem. Dupa ce au fost identificate obiectele, pot fi determinate operatiile pe care sistemul le efectueaza asupra obiectelor. Porgramarea orientata pe obiecte nu solicita un limbaj de programare special, cum ar fi C++. Dar, limbajele de programare descrise ca orientate pe obiecte dispun in mod obisnuit de structuri de date care permit programelor gruparea datelor si metodelor intr-o singura variabila.
Principii de baza
Abstractizarea – Psibilitatea ca un program sa ignore unele aspecte ale informatiei pe care o manipuleaza, adica posibilitatea de a se concentra asupra esentialului. Fiecare obiect in sistem are rolul unui “actor” abstract, care poate executa actiuni , isi poate modifica si comunica starea si poate comunica cu alte obiecte din sistem fara a dezvalui cum au fost implementate acele facilitati.
Procesele, functiile si metodele pot fi de asemenea abstracte, si atunci cand sunt, sunt necesare o varietate de tehnici pentru a extinde abstractizarea:
Incapsularea – numita si ascunderea de informatii: asigura faptul ca obiectele nu pot schimba starea interna a altor obiecte in mod direct(ci doar prin metode puse la dispozitie de obiectul respectiv); doar metodele proprii ale obiectului pot accesa starea acestuia. Fiecare tip de obiect expune o interfata pentru celelalte obiecte care specifica modul cum acele obiecte pot interactiona cu el.
Preview document
Conținut arhivă zip
- Debug
- Farmacie-poo.exe
- Farmacie-poo.ilk
- Farmacie-poo.pdb
- Farmacie-poo
- Debug
- BuildLog.htm
- clientFidel.obj
- data.obj
- Farmacie-poo.exe.embed.manifest
- Farmacie-poo.exe.embed.manifest.res
- Farmacie-poo.exe.intermediate.manifest
- globale.obj
- lista.obj
- main.obj
- meniu.obj
- mt.dep
- operatii.obj
- pastile.obj
- vc90.idb
- vc90.pdb
- ClassDiagram1.cd
- ClassDiagram11.cd
- clientFidel.cpp
- clientFidel.h
- clientFidel.txt
- data.cpp
- data.h
- Farmacie-poo.vcproj
- Farmacie-poo.vcproj.ACASA-10D8A6225.Andreea.user
- Farmacie-poo.vcproj.ACASA-A95A71688.Andreea.user
- Farmacie-poo.vcproj.HOME-6587462F43.Andreea&Andrei.user
- globale.cpp
- globale.h
- lista.cpp
- lista.h
- main.cpp
- meniu.cpp
- meniu.h
- operatii.cpp
- operatii.h
- pastile.cpp
- pastile.h
- pastile.txt
- Farmacie-POO.doc
- Farmacie-poo.ncb
- Farmacie-poo.sln
- Farmacie-poo.suo