Objektklasse i Java er tilstede i java.lang pakke.
strengformater
- Hver klasse er direkte eller indirekte avledet fra Object-klassen. Hvis en klasse ikke utvider noen annen klasse, er det en direkte barneklasse av Java Object klasse og hvis den utvider en annen klasse, er den indirekte avledet.
- Object-klassen gir flere metoder som f.eks toString() er lik() hashkode() og mange andre.
- Objektklassen fungerer som en rot av arvehierarkiet i et hvilket som helst Java-program.
Her bruker vi toString() og hashkode() metoder for objektklassen å gi en egendefinert strengrepresentasjon for en klasse .
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()); } }
Produksjon
Person{name:'Geek'} 321001045 Forklaring: I eksemplet ovenfor overstyrer vi toString() metode for å gi en tilpasset strengrepresentasjon av Person-klassen og bruk hashkode() metode for å vise standard hash-kodeverdi for objektet.
Objektklassemetoder
Objektklassen gir flere metoder som er som følger:
- toString()-metoden
- hashCode()-metoden
- lik (Objekt obj) metode
- finalize() metode
- getClass()-metoden
- clone() metode
- wait() notify() notifyAll() (Samtidighetsmetoder)

1. toString()-metoden
De toString() gir en strengrepresentasjon av et objekt og brukes til å konvertere et objekt til en streng. Standard toString()-metoden for klassen Object returnerer en streng som består av navnet på klassen som objektet er en forekomst av, at-tegnet tegnet `@' og den usignerte heksadesimale representasjonen av hash-koden til objektet.
Note: Hver gang vi prøver å skrive ut en objektreferanse, kalles internt toString()-metoden.
Eksempel:
offentlig klasse Student {
public String toString() {
returner 'Studentobjekt';
}
}
Forklaring: Metoden toString() overstyres for å returnere en egendefinert strengrepresentasjon av Student-objektet.
2. hashCode() Metode
For hvert objekt genererer JVM et unikt nummer som er en hashkode. Den returnerer distinkte heltall for distinkte objekter. En vanlig misforståelse om denne metoden er at hashCode()-metoden returnerer adressen til objektet som ikke er riktig. Den konverterer den interne adressen til objektet til et heltall ved å bruke en algoritme. Metoden hashCode() er innfødt fordi i Java er det umulig å finne adressen til et objekt, så det bruker morsmål som C/C++ for å finne adressen til objektet.
Bruk av hashCode()-metoden:
Den returnerer en hash-verdi som brukes til å søke i objekter i en samling. JVM (Java Virtual Machine) bruker hashkode-metoden mens du lagrer objekter i hashing-relaterte datastrukturer som HashSet HashMap Hashtable etc. Hovedfordelen med å lagre objekter basert på hash-kode er at det blir enkelt å søke.
Note: Overstyring av hashkode() metoden må gjøres slik at for hvert objekt genererer vi et unikt tall. For eksempel for en studentklasse kan vi returnere rullenr. av en student fra hashCode()-metoden siden den er unik.
Eksempel:
offentlig klasse Student {
int rulle;
@Overstyr
public int hashCode() {
rulle tilbake;
}
}
Forklaring: De hashkode() metoden overstyres for å returnere en egendefinert hash-verdi basert på rullen til Student-objektet.
3. lik(Objekt obj) Metode
De lik() metoden sammenligner det gitte objektet med det gjeldende objektet. Det anbefales å overstyre denne metoden for å definere tilpassede likhetsbetingelser.
Note: Det er generelt nødvendig å overstyre hashkode() metode når denne metoden overstyres for å opprettholde den generelle kontrakten for hashCode-metoden som sier at like objekter må ha like hash-koder.
Eksempel:
offentlig klasse Student {
int rulle;
@Overstyr
offentlig boolsk lik(Objekt o) {
if (o instans av student) {
returnere denne.rulle == ((Student) o).rulle;
}
returner falsk;
}
}
Forklaring: De lik() metoden overstyres for å sammenligne rulle mellom to studentobjekter.
4. getClass()-metoden
De getClass() metoden returnerer klasseobjektet til 'dette' objektet og brukes til å få den faktiske kjøretidsklassen til objektet. Den kan også brukes til å hente metadata for denne klassen. Det returnerte klasseobjektet er objektet som er låst av statiske synkroniserte metoder for den representerte klassen. Siden den er endelig, så overstyrer vi den ikke.
Eksempel:
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()); } }
Produksjon
Class of Object o is: java.lang.String
Forklaring: De getClass() metoden brukes til å skrive ut kjøretidsklassen til 'o'-objektet.
Note: Etter å ha lastet en .class-fil vil JVM opprette et objekt av typen java.lang.Klasse i Heap-området. Vi kan bruke dette klasseobjektet for å få informasjon på klassenivå. Det er mye brukt i Speilbilde
5. finalize() metode
De fullføre() metoden kalles rett før en gjenstand samles inn som søppel. Det kalles Søppelsamler på en gjenstand når søppelsamleren fastslår at det ikke er flere referanser til gjenstanden. Vi bør overstyre finalize()-metoden for å disponere systemressurser, utføre oppryddingsaktiviteter og minimere minnelekkasjer. For eksempel før ødeleggelse av Servlet-objekter nettcontainer alltid kalt finalize-metoden for å utføre oppryddingsaktiviteter i økten.
Note: Finaliseringsmetoden kalles bare en gang på en gjenstand selv om den gjenstanden er kvalifisert for søppelhenting flere ganger.
Eksempel:
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'); } }
Produksjon
1510467688 end finalize method called
Forklaring: De fullføre() metoden kalles rett før objektet samles opp.
6. klone() metode
De klone() metoden oppretter og returnerer et nytt objekt som er en kopi av det gjeldende objektet.
Eksempel:
public class Book implementerer Cloneable {
privat String t; //tittel
offentlig bok(streng t) {
dette.t = t;
}
@Overstyr
public Object clone() kaster CloneNotSupportedException {
returner super.clone();
}
}
Forklaring: De klone() metoden overstyres for å returnere en klonet kopi av Bokobjekt .
7. Samtidighetsmetoder: wait() notify() og notifyAll()
Disse metodene er relatert til tråd Kommunikasjon i Java . De brukes til å få tråder til å vente eller varsle andre i samtidig programmering.
Eksempel på bruk av alle objektklassemetodene i Java
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(); } }
Produksjon
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
Forklaring: Eksemplet ovenfor demonstrerer bruken av toString() lik() hashCode() og klone() metoder i Bokklasse .