![]() | |
![]() |
![]() ![]() |
Politica de confidentialitate |
|
![]() | |
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
![]() |
![]() |
||||||
IMPLEMENTAREA BIBLIOTECILOR IN JAVA | ||||||
![]() |
||||||
|
||||||
Construirea de biblioteci abstracte (clase si pachete de clase) este o parte
importanta in dezvoltarea aplicatiilor Java si nu numai. Voi incerca prin articolele
acestei rubrici sa va trezesc curiozitatea privind modalitatile de abstractizarea
a datelor si construirea de noi biblioteci de date abstracte. Toate aplicatiile
existente in numerele anterioare ale revistei (nr. 1 - 21) folosesc caracteristici
si clase existente in Java care sunt puse la dispozitie de bibliotecile standard
(java.util, java.awt, etc.). Pentru inceput voi prezenta cateva lucruri de baza
in realizarea unor biblioteci abstracte de date, urmand ca in articolole viitoare
sa trecem la implementarea unei clase abstracte.
Metode mostenite din Clasa Object Clasa Object declara un numar de metode care pot fi suprascrise de subclase
ale ei (acesta inseamna ca in orice aplicatie putem suprascrie aceste metode).
Cand implementam o clasa trebuie sa tinem cont de unele aspecte legate de obiectele
instanta (cum trebuie copiate <cloned>comparate, sterse, afisate sub forma
unui String). Putem suprascrie aceste metode atunci cand comportamentul lor
implicit nu satisface cerintele programului. Urmatoarele metode pot fi supraincarcate:
<xmp>public boolean equals(Object obj); public String toString(); public
final native int hashCode(); protected native Object clone(); protected void
finalize();</xmp> Obs: obiectele de tip array permit de asemenea suprascrierea
acestor metode. t5t23tr boolean equals(Object obj) Metoda folosita pentru a compara doua obiecte (obiectul pentru care se apeleaza
metoda si obiectul transmis ca parametru). Metoda implicita oferita de clasa
Object returneaza true daca cele doua obiecte reprezinta de fapt acelasi obiect,
folosindu-se operatorul == . Ramane in sarcina programatorului sa decida cum
se compara doua obiecte ale aceleeasi clase. int hashCode() Un hash cod este o valoare intreaga ce reprezinta intreaga valoare a unui
obiect. Codurile hash sunt folosite drept chei in tabelele de dispersie asa
cum este implementata clasa HashTable din pachetul java.util. Versiunea implicita
a metodei va incerca sa genereze un cod pentru fiecare obiect dar se poate ca
la un moment dat sa genereze valori diferite pentru un acelasi obiect. Daca
se intampla acest lucru atunci trebuie sa suprascriem metoda pentru a implementa
o noua functie de dispersie (hash function) care va genera codurile hash corecte.
object clone() Metoda va crea o copie a obiectului. Implicit doar obiectul curent este copiat si nu si celelalte obiecte spre care acesta poate avea referinte. Valorile primitive in Java sunt intotdeauna copiate. Metoda suprascrisa trebuie declarata public. Daca un obiect nu poate fi clonat va fi aruncata exceptia : CloneNotSupportedException. void finalize() Acesta metoda este apelata automat de colectorul de gunoaie (garbage collector)
cand un obiect nu mai este referentiat si poate fi sters din memorie. Varianta
implicita nu contine nici o instructiune in corpul metodei. Colectorul de gunoaie
poate rula oricand, astfel incat nu se poate determina cu exactitate cand va
fi apelata metoda finalize. Putem supraincarca acesta metoda in cazul in care
de exemplu anumite date trebuie salvate intr-un fisier inainte de a fi pierdute
sau o conexiune pe retea trebuie inchisa. |
||||||
![]() |
||||||
![]() |
||||||
|
||||||
|
||||||
Copyright© 2005 - 2025 | Trimite document | Harta site | Adauga in favorite |
![]() |
|