Objektu klase Java ir klāt java.lang iepakojums.
komanda chown
- Katra klase ir tieši vai netieši atvasināta no objektu klases. Ja klase nepaplašina nevienu citu klasi, tad tā ir tieša bērnklase Java objektu klase un, ja tas paplašina citu klasi, tad tas ir netieši atvasināts.
- Objektu klase nodrošina vairākas metodes, piemēram toString()equals() hashCode() un daudzi citi.
- Objektu klase darbojas kā mantojuma hierarhijas sakne jebkurā Java programmā.
Šeit mēs izmantojam toString() un hashCode() Objektu klases metodes lai klasei nodrošinātu pielāgotu virknes attēlojumu .
Java
// Java Code to demonstrate Object class class Person { String n; //name // Constructor public Person(String n) { this.n = n; } // Override toString() for a // custom string representation @Override public String toString() { return 'Person{name:'' + n + ''}'; } public static void main(String[] args) { Person p = new Person('Geek'); // Custom string representation System.out.println(p.toString()); // Default hash code value System.out.println(p.hashCode()); } }
Izvade
Person{name:'Geek'} 321001045 Paskaidrojums: Iepriekš minētajā piemērā mēs ignorējam toString() metode, kā nodrošināt a Personas klases pielāgotas virknes attēlojums un izmantojiet hashCode() metode, lai parādītu objekta noklusējuma jaucējkoda vērtību.
Objektu klases metodes
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() (vienlaicīguma metodes)

1. toString() metode
The toString() nodrošina objekta virknes attēlojumu un tiek izmantots, lai pārvērstu objektu 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.
Piezīme: Ikreiz, kad mēģinām izdrukāt kādu objekta atsauci, iekšēji tiek izsaukta metode toString().
Piemērs:
publiskā klase Students {
public String toString() {
atgriezt 'Studentu objekts';
}
}
Paskaidrojums: Metode toString() tiek ignorēta, lai atgrieztu studenta objekta pielāgotu virknes attēlojumu.
2. hashCode() metode
Katram objektam JVM ģenerē unikālu numuru, kas ir hashcode. 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 mēs varam atgriezt ruļļa Nr. studenta no hashCode() metodes, jo tā ir unikāla.
Piemērs:
publiskā klase Students {
int roll;
@Override
public int hashCode() {
atgriešanas rullis;
}
}
Paskaidrojums: The hashCode() metode tiek ignorēta, lai atgrieztu pielāgotu jaucējvērtību, pamatojoties uz studenta objekta rulli.
3. vienāds(Object obj) Metode
The vienāds () metode salīdzina doto objektu ar pašreizējo objektu. Ieteicams ignorēt šo metodi, lai definētu pielāgotus vienlīdzības nosacījumus.
Piezīme: Parasti ir nepieciešams ignorēt hashCode() metodi ikreiz, 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.
Piemērs:
publiskā klase Students {
int roll;
@Override
publiskais Būla ir vienāds(Object o) {
if (o instanceof Student) {
return this.roll == ((Students) o).roll;
}
return false;
}
}
Paskaidrojums: The vienāds () metode tiek ignorēta, lai salīdzinātu roll starp diviem Studentu objektiem.
4. getClass() metode
The getClass() metode atgriež “šī” objekta klases objektu un tiek izmantota, 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.
Piemērs:
Java// Demonstrate working of getClass() public class Geeks { public static void main(String[] args) { Object o = new String('GeeksForGeeks'); Class c = o.getClass(); System.out.println('Class of Object o is: ' + c.getName()); } }
Izvade
Class of Object o is: java.lang.String
Paskaidrojums: The getClass() metode tiek izmantota, lai drukātu 'o' objekta izpildlaika klasi.
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
The pabeigt () metode tiek izsaukta 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 iznīcināšanas tīmekļa konteiners vienmēr tiek saukts 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.
Piemērs:
Java// Demonstrate working of finalize() public class Geeks { public static void main(String[] args) { Geeks t = new Geeks(); 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'); } }
Izvade
1510467688 end finalize method called
Paskaidrojums: The pabeigt () metode tiek izsaukta tieši pirms objekta savākšanas.
6. klona() metode
The klons () metode izveido un atgriež jaunu objektu, kas ir pašreizējā objekta kopija.
Piemērs:
public class Grāmatu rīki Cloneable {
privātā String t; //nosaukums
publiska grāmata(virkne t) {
this.t = t;
}
@Override
public Object clone() met CloneNotSupportedException {
atgriezties super.clone();
}
}
Paskaidrojums: The klons () metode tiek ignorēta, lai atgrieztu klonētu kopiju Grāmatas objekts .
7. Vienlaicības metodes: gaidiet() notify() un notifyAll()
Šīs metodes ir saistītas ar pavediens Saziņa Java . Tos izmanto, lai liktu pavedieniem gaidīt vai paziņot citiem vienlaicīgas programmēšanas laikā.
Piemērs visu Java objektu klases metožu izmantošanai
Javaimport java.io.*; public class Book implements Cloneable { private String t; // title private String a; // author private int y; // year public Book(String t String a int y) { this.t = t; this.a = a; this.y = y; } // Override the toString method @Override public String toString() { return t + ' by ' + a + ' (' + y + ')'; } // Override the equals method @Override public boolean equals(Object o) { if (o == null || !(o instanceof Book)) { return false; } Book other = (Book)o; return this.t.equals(other.getTitle()) && this.a.equals(other.getAuthor()) && this.y == other.getYear(); } // Override the hashCode method @Override public int hashCode() { int res = 17; res = 31 * res + t.hashCode(); res = 31 * res + a.hashCode(); res = 31 * res + y; return res; } // 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 t; } public String getAuthor() { return a; } public int getYear() { return y; } public static void main(String[] args) { // Create a Book object and print its details Book b1 = new Book( 'The Hitchhiker's Guide to the Galaxy' 'Douglas Adams' 1979); System.out.println(b1); // Create a clone of the Book object and print its // details Book b2 = b1.clone(); System.out.println(b2); // Check if the two objects are equal System.out.println('b1 equals b2: ' + b1.equals(b2)); // Get the hash code of the two objects System.out.println('b1 hash code: ' + b1.hashCode()); System.out.println('b2 hash code: ' + b2.hashCode()); // Set book1 to null to trigger garbage collection // and finalize method b1 = 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) b1 equals b2: true b1 hash code: 1840214527 b2 hash code: 1840214527
Paskaidrojums: Iepriekš minētais piemērs parāda izmantošanu toString() vienāds() hashCode() un klons () metodes sadaļā Grāmatu klase .