CATEGORII DOCUMENTE |
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.
class DreptunghiulMeu
Atunci cand este creata o noua instanta a clasei noastre toate valorile vor fi initializate cu 0.In continuare vom defini o metoda care preia patru argumente intregi si returneaza obiectul rectangular.Deoarece argumentele au acelasi nume cu variabilele de instanta, in cadrul metodei vom folosi cuvantul cheie this pentru a referi variabilele de instanta:
DreptunghiulMeu construireDreptunghi (int x1, int y1, int x2, int y2)
O alta varianta ar fi folosirea obiectelor Point in locul coordonatelor individuale.Pentru a implementa aceasta varianta putem supraincarca metoda noastra astfel incat lista de argumente sa contina doua obiecte Point:
DreptunghiulMeu construireDreptunghi (Point stangaSus, Point dreaptaJos)
Pentru ca metoda anterioara sa functioneze clasa Point trebuie importata la inceputul codului sursa.
O alta modalitate de a defini un dreptunghi este de a folosi coordonatele coltului din stanga-sus impreuna cu valorile inaltimii si latimii sale:
DreptunghiulMeu construireDreptunghi(Point stangaSus, int l, int h)
Pentru a finaliza exemplul mai cream o clasa, afisareDreptunghi(), care urmeaza sa afiseze coordonatele dreptunghiului, si o metoda main() care sa apeleze toate aceste metode:
import java.awt.Point;
class DreptunghiulMeu {
int x1=0;
int y1=0;
int x2=0;
int y2=0;
DreptunghiulMeu construireDreptunghi(int x1, int y1, int x2, int y2)
DreptunghiulMeu construireDreptunghi(Point stangaSus, Point dreaptaJos)
DreptunghiulMeu construireDreptunghi(Point stangaSus, int l, int h)
void afisareDreptunghi()
public static void main(String argumente[])
}
Atunci cand avem mai multe metode care fac lucruri asemanatoare, intr-o metoda putem apela o alta.De exemplu, in cazul de mai sus, metoda construireDreptunghi care primeste ca argumente doua obiecte Point poate fi inlocuita cu o versiune mult mai scurta:
DreptunghiulMeu construireDreptunghi(Point stangaSus, Point dreaptaJos)
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1118
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved