1
Programarea pe obiecte
1) Notiunile de obiect si metoda
Ideea de obiect are la baza o notiune mai simpla, deja cunoscuta,si
anume aceea de inregistrare(record).Asa cum stim, o inregistrare este o
colectie de date, de tipuri diverse, pe care programatorul le
reuneste sub un singur nume conform unor anumite scopuri.Spre deosebire
de inregistrari, obiectele pot contine, pe langa date, functii si
proceduri.
Una dintre cele mai simple definitii de obiect este urmatoarea:
type complex=object
re,im:real;
function modul:real;
end;
function complex.modul:real;
begin
modul:=sqrt(sqr(re)+sqr(im));
end;
Notiunea de obiect reprezinta un concept superior celui de inregistrare
prin faptul ca poate contine atat date(variabile)cat si metode.
Metodele sunt functii sau proceduri care fac parte din definitia
obiectului si care sunt concepute de programator in asa fel incat sa
reprezinte cat mai bine o anumita notiune.
Metodele au acces la membrii obiectului in mod implicit.
Parametrii formali ai metodelor nu pot coincide cu variabilele
cuprinse in definitia obiectului.
Functiile membre ale unui obiect prelucreaza datele membre ale
obiectului care apeleaza metoda.
2) Metoda constructor
Aceasta metoda este o metoda in sens obisnuit, care pote fi inclusa in
definitia obiectului. La fel ca si alte metode, ea poate avea sau nu
parametrii.
• Definitia unui obiect in Pascal reprezinta un
tip de date creat de utilizator(programator) conform propriului scop.
• Definitia unui obiect este cuprinsa intre cuvintele
rezervate ale limbajului object si end.
• Un obiect poate contine date (variabile) si metode
(functii sau proceduri).
• Metodele sunt “anuntate” in definitia tipului de
obiect si sunt descrise explicit in exteriorul acesteia.
• Metodele au acces implicit la restul membrilor
obiectului.
• Metodele (functii sau proceduri) pot avea
parametrii formali dar acestia trebuie sa difere de datele membre
ale obiectului.
1
3) Incapsulare
Proprietatea obiectelor, prin care intr-o singura definitie sunt
incluse date si metode, poarta numele de incapsulare.
Un unit este descris printr-un text sursa obisnuit in limbajul Pasca,
intr-un fisier cu extensia pas si avand numele ales exact la fel cu cel
al unit-ului pe care vrem sa il cream.
Iata care sunt regulile care trebuiesc respectate:
1) Prima linie contine numele pe care vrem sa-l dam
unit-ul .
2) Inainte de prima definitie trebuie plasat cuvantul
interface.
3) Dupa interface pot fi plasate directive uses cu
sensul cunoscut,
de utilizare a unor anumite functii, definitii sau proceduri.
4) Urmeaza definitiile tipurilor de obiecte.
5) Sectiunea care continedefinitia sau
definitiile de obiecte, se incheie prin cuvantul implementation.
6) Urmeaza descrierea proriu-zisa a metodelor.
7) In final, intre begin si end pot fi plasate
instructiuni prin
care, de exemplu, pot fi atribuite valori unor variabile anterior
definite in unit-ul respectiv.
8) Intr-un unit pot fi incluse si alte definitii de
functii sau
proceduri, fara legatura cu tipul object, respectand conditia de
anuntare a antentului in sectiunea interface si descrierea completa in
sectiunea implementation.
4) Mostenire
Procesul de mostenire isi justifica denumirea chiar prin sensul
originar al cuvantului. Vom vorbi despre stramos si urmasi.Urmasii
preiau caracteristici ale stramosilor dar le pot modifica sau pot
adauga achizitii noi.
Mostenirea reflecta preluarea tuturor datelor si metodelor unui stramos
la care se pot aduga alte date si metode noi, rezultand un urmas.
Metodele mostenite pot fi modificate de urmas.
5) Polimorfism
5.1 Rescrierea metodelor
Urmasii pot modifica metodele mostenite.Simpla reanuntare a
metodei
in definitia urmasului conduce la inlocuirea metodei mostenite cu una
noua.
Obiectul de tip punct va contine pe langa cele doua date ,urmatoarele
metode : constructor,distanta pana la origine si afisare.
Metoda constructor init are doi parametrii ale caror valori se
transfera coordonatelor, cu alte cuvinte, prin initializare, specificam
coordonatele punctului.
Metoda ro furnizeaza distanta pana la origine cu formula deja cunoscuta
iar metoda de afisare afiseaza punctul in forma (x,y).
Numim poliformism , acea prorpietate prin care o functie apelanta prin
acelasi nume, poate avea actiuni diferite de la stramos la urmas.
5.2 Concepte rafinate:inherited,virtual si self
Poliformismul prezentat in sectiunea anterioara are in limbajul Pascal
doua rafinari extrem de interesante, pe care le vom prezenta separat.
In cele ce urmeaza vom ilustra o caracteristica a programarii pe
obiecte in acest limbaj, si anume posibilitatea ca o functie mostenita
dar modificata de catre urmas sa fie totusi accesibila.
Metodele virtuale sunt acele metode care se asociaza obiectului la
momentul executiei.
Cele mai ok referate! www.referateok.ro |