
"Bună, Amigo!"
"Bună!"
"Astăzi vom studia clasa Object.
Ați întâlnit-o deja și știți că Object este clasa de bază pentru toate clasele. Practic nu are date, dar are mai multe metode."
"De ce are nevoie de metode? Chiar creează cineva instanțe ale clasei Object?"
„Priviți-l astfel: metodele din clasa Object sunt comune în toate clasele. Cu alte cuvinte, creatorii Java au identificat câteva metode pe care, în opinia lor, fiecare clasă ar trebui să le aibă și le-au adăugat la clasa Object.”
„Și atunci când este combinat cu polimorfismul (abilitatea de a suprascrie metodele clasei Object în clasele derivate), acesta devine un instrument foarte puternic.”
„Să vedem care sunt aceste metode:”
Metodă | Descriere |
---|---|
|
Returnează o reprezentare șir a obiectului. |
|
O pereche de metode folosite pentru a compara obiecte. |
|
Returnează un obiect special care descrie clasa curentă. |
|
Metode pentru controlul accesului la un obiect din fire diferite. Pentru sincronizarea firelor. |
|
Această metodă vă permite să eliberați resurse native non-Java: închideți fișiere, fluxuri etc. |
|
Această metodă vă permite să clonați un obiect: creează o copie a obiectului. |
„Aceste metode pot fi împărțite în 6 grupe. Sunteți deja familiarizat cu unele dintre ele, iar cu restul ne vom familiariza în lecțiile ulterioare.”
„Din anumite motive, nu văd nimic util aici”.
"Amigo! Dacă aceste metode nu ar fi fost importante, nu le-ar fi adăugat la fiecare obiect! Așadar, te-aș sfătui să te uiți mai atent la ce sunt acestea și de ce sunt necesare. Dacă ți se par neimportante. , atunci fie nu ai înțeles ceva, fie nu ai înțeles ceva corect.”
— Bine. O să ascult cu atenţie.
„Să începem cu metoda toString().
„Această metodă vă permite să obțineți o descriere text a oricărui obiect. Implementarea sa în clasa Object este foarte simplă:”
return getClass().getName() + "@" + Integer.toHexString(hashCode());
„getClass() și hashCode() sunt, de asemenea, metode ale clasei Object.
Apelarea acestei metode produce de obicei un rezultat ca acesta:”
java.lang.Object@12F456
— Și la ce folosește o asemenea descriere?
"Această descriere vă permite să cunoașteți clasa obiectului pe care a fost apelată metoda. Puteți, de asemenea, să distingeți între obiecte; diferite obiecte vor avea cifre diferite după simbolul @."
„Dar valoarea reală a acestei metode se află în altă parte. Această metodă poate fi suprascrisă în orice clasă pentru a returna o descriere mai detaliată sau adecvată a obiectului.”
„Dar sunt mai multe. Deoarece puteți obține o reprezentare text a fiecărui obiect, Java a făcut posibilă implementarea suportului pentru „adăugarea” șirurilor de caractere la obiecte. Verificați:
”
Cod | Ce se întâmplă cu adevărat |
---|---|
|
|
|
|
|
|
"Da, folosesc asta în mod regulat. Mai ales când scriu un program sau caut erori. Este o operațiune utilă."
GO TO FULL VERSION