Toate metodele claselor Object, plus mai multe despre metoda toString() - 1

"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
public String toString()
Returnează o reprezentare șir a obiectului.
public native int hashCode()
public boolean equals(Object obj)
O pereche de metode folosite pentru a compara obiecte.
public final native Class getClass()
Returnează un obiect special care descrie clasa curentă.
public final native void notify()
public final native void notifyAll()
public final native void wait(long timeout)
public final void wait(long timeout, intnanos)
public final void wait()
Metode pentru controlul accesului la un obiect din fire diferite. Pentru sincronizarea firelor.
protected void finalize()
Această metodă vă permite să eliberați resurse native non-Java: închideți fișiere, fluxuri etc.
protected native Object clone()
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
int age = 18;
System.out.println("Age is " + age);

String s = String.valueOf(18);
String result = "Age is " + s;
System.out.println(result);
Student st = new Student("Vincent");
System.out.println("Student is " + st);

Student st = new Student("Vincent");
String result = "Student is " + st.toString();
System.out.println(result);
Car car = new Porsche();
System.out.println("My car is " + car);

Car car = new Porsche();
String result = "My car is " + car.toString();
System.out.println(result);

"Da, folosesc asta în mod regulat. Mai ales când scriu un program sau caut erori. Este o operațiune utilă."