logo

Objektu klase Java valodā

Objekts klasē atrodas java.lang iepakojums. Katra Java klase ir tieši vai netieši atvasināta no Objekts klasē. Ja klase nepaplašina nevienu citu klasi, tā ir tieša bērnklase Objekts un, ja paplašina citu klasi, tad tā ir netieši atvasināta. Tāpēc objektu klases metodes ir pieejamas visām Java klasēm. Tādējādi objektu klase darbojas kā mantojuma hierarhijas sakne jebkurā Java programmā.

Objektu klase Java valodā

Objektu klases metožu izmantošana

Objektu klase nodrošina vairākas metodes, kas ir šādas:



  • toString() metode
  • hashCode() metode
  • vienāds(Object obj) metode
  • finalize() metode
  • getClass() metode
  • klona() metode
  • gaidīt(), notify() notifyAll() metodes

1. toString() metode

ToString () nodrošina objekta virknes attēlojumu un tiek izmantots, lai objektu pārvērstu par virkni. Noklusējuma metode toString() klasei Object atgriež virkni, kas sastāv no tās klases nosaukuma, kuras gadījums ir objekts, at-zīmes rakstzīmes '@' un objekta jaucējkoda neparakstīta heksadecimālā attēlojuma. Citiem vārdiem sakot, tas ir definēts šādi:

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

Vienmēr ir ieteicams ignorēt toString() metode, lai iegūtu mūsu pašu objekta virknes attēlojumu. Lai uzzinātu vairāk par metodes toString() ignorēšanu, skatiet - ToString() ignorēšana Java

Piezīme: Ikreiz, kad mēģinām izdrukāt kādu objekta atsauci, iekšēji tiek izsaukta metode toString().

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

2. hashCode() metode

Katram objektam JVM ģenerē unikālu numuru, kas ir jaucējkods. Tas atgriež atšķirīgus veselus skaitļus atsevišķiem objektiem. Izplatīts nepareizs priekšstats par šo metodi ir tāds, ka metode hashCode() atgriež objekta adresi, kas nav pareiza. Tas pārvērš objekta iekšējo adresi veselā skaitlī, izmantojot algoritmu. HashCode() metode ir dzimtā jo Java nav iespējams atrast objekta adresi, tāpēc tā izmanto dzimtās valodas, piemēram, C/C++, lai atrastu objekta adresi.

HashCode() metodes izmantošana

Tas atgriež jaucējvērtību, kas tiek izmantota, lai meklētu objektus kolekcijā. JVM (Java Virtual Machine) izmanto jaucējkoda metodi, vienlaikus saglabājot objektus ar jaukšanu saistītās datu struktūrās, piemēram, HashSet, HashMap, Hashtable utt. Galvenā priekšrocība, saglabājot objektus, pamatojoties uz jaucējkodu, ir tā, ka meklēšana kļūst vienkārša.

Piezīme: Ignorēt hashCode() metode ir jādara tā, lai katram objektam mēs ģenerētu unikālu numuru. Piemēram, Studentu klasei varam atgriezt ruļļa Nr. studenta no hashCode() metodes, jo tā ir unikāla.

Java


.tif failu



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

lejupielādēt video no youtube vlc

>

>

Izvade:

Student@64 Student@64>

Ņemiet vērā, ka 4*160+ 6*161= 100

3. vienāds(Object obj) metode

Tas salīdzina doto objektu ar šo objektu (objektu, uz kura tiek izsaukta metode). Tas sniedz vispārīgu veidu, kā salīdzināt objektus, lai panāktu vienlīdzību. Ieteicams ignorēt vienāds (Objekts objekts) metode, kā iegūt mūsu pašu vienlīdzības nosacījumu uz objektiem. Lai uzzinātu vairāk par vienādības (Object obj) metodes ignorēšanu, skatiet - Metodes ignorēšana vienāds ar Java

Piezīme: Parasti ir nepieciešams ignorēt hashCode() metodi, kad šī metode tiek ignorēta, lai saglabātu vispārējo līgumu par hashCode metodi, kas nosaka, ka vienādiem objektiem jābūt vienādiem jaucējkodiem.

4. getClass() metode

Tas atgriež šī objekta klases objektu un tiek izmantots, lai iegūtu objekta faktisko izpildlaika klasi. To var izmantot arī šīs klases metadatu iegūšanai. Atgrieztais klases objekts ir objekts, kas ir bloķēts ar pārstāvētās klases statiskām sinhronizētām metodēm. Tā kā tas ir galīgs, mēs to nepārkāpjam.

Java




kas ir android Lieldienu ola

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

>

>

Izvade:

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

Piezīme: Pēc .class faila ielādes JVM izveidos šāda veida objektu java.lang.Class Kaudzes apgabalā. Mēs varam izmantot šo klases objektu, lai iegūtu klases līmeņa informāciju. To plaši izmanto Atspulgs

5. finalize() metode

Šo metodi izsauc tieši pirms objekta savākšanas. To sauc par Atkritumu savācējs uz objekta, kad atkritumu savācējs konstatē, ka uz objektu vairs nav atsauces. Mums vajadzētu ignorēt finalize() metodi, lai atbrīvotos no sistēmas resursiem, veiktu tīrīšanas darbības un samazinātu atmiņas noplūdes. Piemēram, pirms Servlet objektu tīmekļa konteinera iznīcināšanas to vienmēr sauc par pabeigšanas metodi, lai veiktu sesijas tīrīšanas darbības.

Piezīme: Pabeigšanas metodi sauc par taisnīgu vienreiz uz objekta, pat ja šis objekts ir piemērots atkritumu savākšanai vairākas reizes.

Java




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

datuma virkne java

>

>

Izvade:

1510467688 finalize method called end>

6. klona() metode

Tas atgriež jaunu objektu, kas ir tieši tāds pats kā šis objekts. Par klona() metodi skatiet Klonēt () .

Atlikušās trīs metodes gaidi () , paziņot() paziņot visiem() ir saistīti ar vienlaicīgumu. Atsaukties uz Starppavedienu komunikācija Java valodā sīkākai informācijai.

Piemērs visu objektu klases metožu izmantošanai Java

Java




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

>

>

Izvade

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>