Extras din curs
FOLOSIREA METODELOR PENTRU INDEPLINIREA SARCINILOR
Metodele sunt partea cea mai importanta a oricarui limbaj de programare orientat obiect deoarece ele definesc fiecare actiune indeplinita de un obiect .
Clasele si obiectele ofera un cadru de lucru . Variabilele de instanta si de clasa ofera o modalitate de a defini ceea ce reprezinta aceste clase si obiecte . Doar metodele pot defini comportamentul unui obiect – lucrurile pe care este capabil sa le realizeze sau modul cum interactioneaza cu alte clase sau obiecte .
In cursurile anterioare am vazut cum sa definim o metoda si sa lucram cu ea practic . In continuare vom detalia unele caracteristici care fac metodele sa fie mai eficiente si mai usor de folosit :
- supraincarcarea metodelor ( overloading ) – crearea de metode cu diferite semnaturi si definitii insa cu acelasi nume
- crearea metodelor constructor – metode care permit initializarea obiectelor , pentru a le defini starea initiala din momentul crearii lor
- suprascrierea metodelor (overriding ) – crearea unei definitii diferite penttu o metoda care a mai fost definita in superclasa
- metode de finalizare ( finalizer ) – metode care elibereaza resursele ocupate de un obiect dupa terminarea lucrului cu un el , inainte ca acesta sa fie inlaturat din sistem
CREAREA DE METODE CU ACELASI NUME SI ARGUMENTE DIFERITE
Un exemplu de astfel de metoda este valueOf() ; metoda apartine clasei java.lang.String . In general in Java vom intalni des clase care contin mai multe metode cu acelasi nume .
Metodele cu acelasi nume se diferentiaza intre ele prin doua caracteristici :
- numarul argumentelor pe care le preiau
- tipul datelor sau obiectelor fiecarui argument
Aceste doua caracteristici definesc semnatura metodei ; folosirea mai multor metode cu acelasi nume si semnaturi diferite se numeste supraincarcare .
In exemplul clasei String , metodele valueOf() sunt supraincarcate deoarece preiau ca parametri tipuri de date diferite .
Supraincarcarea metodelor elimina nevoia de a defini metode complet diferite care sa faca in principiu acelasi lucru . Supraincarcarea face de asemenea posibila comportarea diferita a metodelor in functie de argumentele primite .
Metodele valueOf() pot fi folosite pentru a converti diverse tipuri de date sau obiecte in siruri . Atunci cand apelam o metoda a unui obiect Java verifica numele si argumentele acesteia pentru a vedea ce metoda va executa .
Pentru a crea o metoda supraincarcata intr-o clasa vom defini metode diferite , cu acelasi nume insa cu liste de argumente diferite . Diferenta poate consta in numarul de argumente , in tipul de argumente sau ambele . Java permite supraincarcarea metodelor atat timp cat lista de argumente este unica pentru acelasi nume de metoda .
Mentionez ca Java nu ia in considerare tipul valorii returnate pentru a face diferentierea metodelor supraincarcate . Daca incercam sa cream doua metode care difera doar prin tipul valorii de retur vom obtine o eroare inca de la compilare . In plus numele variabilelor pe care le alegem pentru fiecare argument nu au importanta – tot ceea ce conteaza este numarul si tipul acestora .
In continuare vom detalia un exemplu de metoda supraincarcata . Vom crea intai o clasa care defineste o forma rectangulara cu patru variabile de instanta , pentru a preciza colturile din stanga-sus si dreapta-jos ale unui dreptunghi : x1 , y1 , x2 , y2 .
Preview document
Conținut arhivă zip
- Programare Java - Curs.doc