Objektas klasėje yra java.lang paketą. Kiekviena „Java“ klasė yra tiesiogiai arba netiesiogiai kilusi iš Objektas klasė. Jei klasė nepratęsia jokios kitos klasės, tai yra tiesioginė antrinė klasė Objektas ir jei išplečia kitą klasę, tada ji yra netiesiogiai išvesta. Todėl objektų klasės metodai yra prieinami visoms Java klasėms. Taigi „Object“ klasė bet kurioje „Java“ programoje veikia kaip paveldėjimo hierarchijos šaknis.

vietos datos laikas java
Objektų klasės metodų naudojimas
Objektų klasė pateikia kelis metodus, kurie yra tokie:
- toString() metodas
- HashCode() metodas
- lygus(Object obj) metodas
- Finalize() metodas
- getClass() metodas
- klono() metodas
- palauk(), notify() notifyAll() metodai
1. toString() metodas
ToString() pateikia objekto eilutės atvaizdavimą ir yra naudojamas konvertuoti objektą į eilutę. Numatytasis metodas toString() klasei Object grąžina eilutę, kurią sudaro klasės, kurios egzempliorius yra objektas, pavadinimo, at-ženklo simbolio „@“ ir nepaženklinto šešioliktainio objekto maišos kodo atvaizdo. Kitaip tariant, jis apibrėžiamas taip:
// Default behavior of toString() is to print class name, then // @, then unsigned hexadecimal representation of the hash code // of the object public String toString() { return getClass().getName() + '@' + Integer.toHexString(hashCode()); }> Visada rekomenduojama nepaisyti toString() metodas, kaip gauti savo objekto eilutės atvaizdavimą. Norėdami daugiau sužinoti apie toString() metodo nepaisymą, žr. ToString() nepaisymas Java programoje
Pastaba: Kai bandome spausdinti bet kokią objekto nuorodą, viduje iškviečiamas metodas toString().
Student s = new Student(); // Below two statements are equivalent System.out.println(s); System.out.println(s.toString());>
2. hashCode() metodas
Kiekvienam objektui JVM generuoja unikalų numerį, kuris yra maišos kodas. Jis grąžina skirtingus sveikuosius skaičius skirtingiems objektams. Įprasta klaidinga nuomonė apie šį metodą yra ta, kad metodas hashCode() grąžina objekto adresą, kuris nėra teisingas. Jis konvertuoja vidinį objekto adresą į sveikąjį skaičių, naudodamas algoritmą. HashCode() metodas yra gimtoji nes Java neįmanoma rasti objekto adreso, todėl objekto adresui rasti naudojama gimtoji kalba, pvz., C/C++.
HashCode() metodo naudojimas
Jis grąžina maišos reikšmę, kuri naudojama ieškant objektų kolekcijoje. JVM (Java Virtual Machine) naudoja maišos kodo metodą, išsaugodama objektus su maiša susijusiose duomenų struktūrose, pvz., HashSet, HashMap, Hashtable ir kt. Pagrindinis objektų išsaugojimo pagal maišos kodą privalumas yra tai, kad paieška tampa lengva.
Pastaba: Nepaisyti maišos kodas () metodas turi būti atliktas taip, kad kiekvienam objektui sugeneruotume unikalų skaičių. Pavyzdžiui, Mokinio klasei galime grąžinti ritinėlį Nr. studento iš hashCode() metodo, nes jis yra unikalus.
Java
// Java program to demonstrate working of> // hashCode() and toString()> public> class> Student {> >static> int> last_roll =>100>;> >int> roll_no;> >// Constructor> >Student()> >{> >roll_no = last_roll;> >last_roll++;> >}> >// Overriding hashCode()> >@Override> public> int> hashCode() {>return> roll_no; }> >// Driver code> >public> static> void> main(String args[])> >{> >Student s =>new> Student();> >// Below two statements are equivalent> >System.out.println(s);> >System.out.println(s.toString());> >}> }> |
>
>
Išvestis:
Student@64 Student@64>
Atkreipkite dėmesį, kad 4*160+ 6*161= 100
3. lygus(Object obj) metodas
Jis lygina duotą objektą su šiuo objektu (objektu, kuriam iškviečiamas metodas). Tai suteikia bendrą būdą lyginti objektus siekiant lygybės. Rekomenduojama nepaisyti lygus (objekto objektas) būdas gauti mūsų pačių objektų lygybės sąlygą. Norėdami sužinoti daugiau apie lygybės (Object obj) metodo nepaisymą, žr. „Java“ metodo nepaisymas lygu
Pastaba: Paprastai būtina nepaisyti maišos kodas () metodas, kai šis metodas yra nepaisomas, kad būtų išlaikyta bendroji „hashCode“ metodo sutartis, kurioje teigiama, kad vienodi objektai turi turėti vienodus maišos kodus.
4. getClass() metodas
Jis grąžina šio objekto klasės objektą ir yra naudojamas norint gauti tikrąją objekto vykdymo klasę. Jis taip pat gali būti naudojamas šios klasės metaduomenims gauti. Grąžintas klasės objektas yra objektas, užrakintas statiniais sinchronizuotais atstovaujamos klasės metodais. Kadangi jis yra galutinis, mes jo nepaisome.
Java
// Java program to demonstrate working of getClass()> public> class> Test {> >public> static> void> main(String[] args)> >{> >Object obj =>new> String(>'GeeksForGeeks'>);> >Class c = obj.getClass();> >System.out.println(>'Class of Object obj is : '> >+ c.getName());> >}> }> |
>
>
Išvestis:
Class of Object obj is : java.lang.String>
Pastaba: Įkėlus .class failą, JVM sukurs tokio tipo objektą java.lang.Class Krūvos srityje. Šį klasės objektą galime naudoti norėdami gauti klasės lygio informaciją. Jis plačiai naudojamas Atspindys
5. finalize() metodas
Šis metodas iškviečiamas prieš pat objektą surenkant šiukšles. Jis vadinamas Šiukšlių surinkėjas ant objekto, kai šiukšlių surinkėjas nustato, kad nuorodų į objektą nebėra. Turėtume nepaisyti finalize() metodo, kad pašalintume sistemos išteklius, atliktume valymo veiksmus ir sumažintume atminties nutekėjimą. Pavyzdžiui, prieš sunaikinant „Servlet“ objektų žiniatinklio konteinerį, visada vadinamas užbaigimo metodu, kad būtų galima išvalyti seanso veiklą.
Pastaba: Užbaigimo metodas vadinamas tiesiog kartą objekte, nors tas objektas yra tinkamas šiukšlių rinkimui kelis kartus.
Java
sėklos vs sporos
// Java program to demonstrate working of finalize()> public> class> Test {> >public> static> void> main(String[] args)> >{> >Test t =>new> Test();> >System.out.println(t.hashCode());> >t =>null>;> >// calling garbage collector> >System.gc();> >System.out.println(>'end'>);> >}> >@Override> protected> void> finalize()> >{> >System.out.println(>'finalize method called'>);> >}> }> |
>
>
Išvestis:
1510467688 finalize method called end>
6. klono() metodas
Jis grąžina naują objektą, kuris yra visiškai toks pat kaip šis objektas. Dėl klono() metodo žr Klonuoti () .
Likę trys metodai laukti() , pranešti () pranešti visiems () yra susiję su lygiagrečiu. Atsižvelgti į Bendravimas tarp gijų Java dėl detalių.
Visų objektų klasės metodų naudojimo Java programoje pavyzdys
Java
import> java.io.*;> public> class> Book>implements> Cloneable {> >private> String title;> >private> String author;> >private> int> year;> >public> Book(String title, String author,>int> year)> >{> >this>.title = title;> >this>.author = author;> >this>.year = year;> >}> >// Override the toString method> >@Override> public> String toString()> >{> >return> title +>' by '> + author +>' ('> + year +>')'>;> >}> >// Override the equals method> >@Override> public> boolean> equals(Object obj)> >{> >if> (obj ==>null> || !(obj>instanceof> Book)) {> >return> false>;> >}> >Book other = (Book)obj;> >return> this>.title.equals(other.getTitle())> >&&>this>.author.equals(other.getAuthor())> >&&>this>.year == other.getYear();> >}> >// Override the hashCode method> >@Override> public> int> hashCode()> >{> >int> result =>17>;> >result =>31> * result + title.hashCode();> >result =>31> * result + author.hashCode();> >result =>31> * result + year;> >return> result;> >}> >// Override the clone method> >@Override> public> Book clone()> >{> >try> {> >return> (Book)>super>.clone();> >}> >catch> (CloneNotSupportedException e) {> >throw> new> AssertionError();> >}> >}> >// Override the finalize method> >@Override> protected> void> finalize()>throws> Throwable> >{> >System.out.println(>'Finalizing '> +>this>);> >}> >public> String getTitle() {>return> title; }> >public> String getAuthor() {>return> author; }> >public> int> getYear() {>return> year; }> >public> static> void> main(String[] args)> >{> >// Create a Book object and print its details> >Book book1 =>new> Book(> >'The Hitchhiker's Guide to the Galaxy'>,> >'Douglas Adams'>,>1979>);> >System.out.println(book1);> >// Create a clone of the Book object and print its> >// details> >Book book2 = book1.clone();> >System.out.println(book2);> >// Check if the two objects are equal> >System.out.println(>'book1 equals book2: '> >+ book1.equals(book2));> >// Get the hash code of the two objects> >System.out.println(>'book1 hash code: '> >+ book1.hashCode());> >System.out.println(>'book2 hash code: '> >+ book2.hashCode());> >// Set book1 to null to trigger garbage collection> >// and finalize method> >book1 =>null>;> >System.gc();> >}> }> |
eilutę į datą
>
>Išvestis
The Hitchhiker's Guide to the Galaxy by Douglas Adams (1979) The Hitchhiker's Guide to the Galaxy by Douglas Adams (1979) book1 equals book2: true book1 hash code: 1840214527 book2 hash code: 1840214527>