logo

Objektni razred v Javi

Objekt razred je prisoten v java.lang paket. Vsak razred v Javi je neposredno ali posredno izpeljan iz Objekt razred. Če razred ne razširja nobenega drugega razreda, je neposredni podrejeni razred Objekt in če razširi drug razred, potem je posredno izpeljan. Zato so metode razreda Object na voljo vsem razredom Java. Zato razred Object deluje kot koren hierarhije dedovanja v katerem koli programu Java.

Objektni razred v Javi

natisni niz v javi

Uporaba metod razreda objektov

Razred Object ponuja več metod, ki so naslednje:



  • metoda toString().
  • metoda hashCode().
  • metoda equals(Object obj).
  • metoda finalize().
  • metoda getClass().
  • metoda clone().
  • metode wait(), notify() notifyAll().

1. Metoda toString().

ToString() nudi nizovno predstavitev predmeta in se uporablja za pretvorbo predmeta v niz. Privzeta metoda toString() za razred Object vrne niz, ki je sestavljen iz imena razreda, katerega primerek je predmet, znaka @ in nepredznačene šestnajstiške predstavitve zgoščene kode predmeta. Z drugimi besedami, opredeljeno je kot:

// 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()); }>

Vedno je priporočljivo preglasiti toString() metodo za pridobitev lastne nizovne predstavitve predmeta. Za več o preglasitvi metode toString() glejte – Preglasitev toString() v Javi

Opomba: Kadarkoli poskušamo natisniti katero koli referenco objekta, se interno kliče metoda toString().

Student s = new Student();  // Below two statements are equivalent System.out.println(s); System.out.println(s.toString());>

2. metoda hashCode().

Za vsak objekt JVM ustvari edinstveno številko, ki je hashcode. Vrne različna cela števila za različne predmete. Pogosta napačna predstava o tej metodi je, da metoda hashCode() vrne naslov predmeta, kar ni pravilno. Pretvori notranji naslov objekta v celo število z uporabo algoritma. Metoda hashCode() je domačin ker v Javi ni mogoče najti naslova predmeta, zato za iskanje naslova predmeta uporablja izvorne jezike, kot je C/C++.

Uporaba metode hashCode().

Vrne zgoščeno vrednost, ki se uporablja za iskanje predmetov v zbirki. JVM (Java Virtual Machine) uporablja metodo hashcode, medtem ko shranjuje objekte v podatkovne strukture, povezane z zgoščevanjem, kot so HashSet, HashMap, Hashtable itd. Glavna prednost shranjevanja objektov na podlagi hash kode je, da postane iskanje enostavno.

Opomba: Preglasitev hashCode() metodo je treba narediti tako, da za vsak predmet ustvarimo edinstveno številko. Na primer, za razred Študent lahko vrnemo št. študenta iz metode hashCode(), saj je edinstvena.

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());> >}> }>

razvrščeni tuple python

>

>

Izhod:

Student@64 Student@64>

Upoštevajte, da 4*160+ 6*161= 100

3. metoda equals(Object obj).

Primerja dani objekt s tem objektom (objekt, na katerem je metoda klicana). Omogoča splošen način primerjave predmetov za enakost. Priporočljivo je preglasiti enako (predmet obj) metoda za pridobitev lastnega pogoja enakosti za objekte. Za več informacij o preglasitvi metode equals(Object obj) glejte – Preglasitev metode enako v Javi

Opomba: Na splošno je treba preglasiti hashCode() kadar koli je ta metoda preglasena, da se ohrani splošna pogodba za metodo hashCode, ki navaja, da morajo enaki objekti imeti enake kode zgoščevanja.

4. metoda getClass().

Vrne objekt razreda tega predmeta in se uporablja za pridobitev dejanskega izvajalnega razreda predmeta. Uporablja se lahko tudi za pridobivanje metapodatkov tega razreda. Vrnjeni objekt razreda je objekt, ki je zaklenjen s statičnimi sinhroniziranimi metodami predstavljenega razreda. Ker je dokončen, ga ne preglasimo.

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());> >}> }>

pretvori v dvojno javo
>

>

Izhod:

Class of Object obj is : java.lang.String>

Opomba: Po nalaganju datoteke .class bo JVM ustvaril objekt tipa java.lang.Class na območju Heap. Ta predmet razreda lahko uporabimo za pridobitev informacij o ravni razreda. Veliko se uporablja v Odsev

5. metoda finalize().

Ta metoda se pokliče tik preden se objekt pobere v smeti. Imenuje se Zbiralec smeti na objektu, ko zbiralec smeti ugotovi, da ni več sklicev na objekt. Metodo finalize() bi morali preglasiti za odstranjevanje sistemskih virov, izvajanje dejavnosti čiščenja in zmanjšanje uhajanja pomnilnika. Na primer, pred uničenjem spletnega vsebnika objektov Servlet, ki se vedno imenuje metoda finalize za izvedbo dejavnosti čiščenja seje.

Opomba: Metoda finalize se imenuje just enkrat na objektu, čeprav je ta predmet večkrat primeren za zbiranje smeti.

Java

prehod motnosti css




// 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'>);> >}> }>

>

>

Izhod:

1510467688 finalize method called end>

6. metoda clone().

Vrne nov predmet, ki je popolnoma enak temu objektu. Za metodo clone() glejte Kloniraj() .

Preostale tri metode počakaj() , obvestiti() notifyAll() so povezani s sočasnostjo. Nanašati se na Komunikacija med nitmi v Javi za podrobnosti.

niz predolg

Primer uporabe vseh metod razreda Object v Javi

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();> >}> }>

>

>

Izhod

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>