Objektklass i Java finns i java.lang paket.
hur man skriver ut java
- Varje klass är direkt eller indirekt härledd från klassen Object. Om en klass inte utökar någon annan klass är det en direkt underordnad klass till Java Object klass och om den utökar en annan klass så är den indirekt härledd.
- Objektklassen tillhandahåller flera metoder som t.ex toString() är lika med() hashCode() och många andra.
- Objektklassen fungerar som en rot till arvshierarkin i alla Java-program.
Här använder vi toString() och hashCode() metoder i objektklassen för att tillhandahålla en anpassad strängrepresentation för en klass .
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()); } }
Produktion
Person{name:'Geek'} 321001045 Förklaring: I exemplet ovan åsidosätter vi toString() metod för att tillhandahålla en anpassad strängrepresentation av klassen Person och använda hashCode() metod för att visa objektets standardhashkodvärde.
Objektklassmetoder
Objektklassen tillhandahåller flera metoder som är följande:
- toString()-metoden
- hashCode() metod
- equals(Object obj) metod
- finalize() metod
- getClass() metod
- clone() metod
- wait() notify() notifyAll() (Samtidighetsmetoder)

1. toString()-metod
De toString() tillhandahåller en strängrepresentation av ett objekt och används för att konvertera ett objekt till en sträng. Standardmetoden toString() för klassen Object returnerar en sträng som består av namnet på den klass som objektet är en instans av, at-tecknet "@" och den osignerade hexadecimala representationen av objektets hash-kod.
Notera: När vi försöker skriva ut någon objektreferens anropas internt toString()-metoden.
Exempel:
offentlig klass Student {
public String toString() {
returnera 'Studentobjekt';
}
}
Förklaring: Metoden toString() åsidosätts för att returnera en anpassad strängrepresentation av Student-objektet.
2. hashCode() Metod
För varje objekt genererar JVM ett unikt nummer som är en hashkod. Den returnerar distinkta heltal för distinkta objekt. En vanlig missuppfattning om denna metod är att metoden hashCode() returnerar adressen till objektet som inte är korrekt. Den konverterar objektets interna adress till ett heltal genom att använda en algoritm. Metoden hashCode() är inföding eftersom det i Java är omöjligt att hitta adressen till ett objekt så det använder inhemska språk som C/C++ för att hitta adressen till objektet.
Användning av hashCode()-metoden:
Den returnerar ett hashvärde som används för att söka efter objekt i en samling. JVM (Java Virtual Machine) använder hashkodmetoden samtidigt som objekt sparas i hashrelaterade datastrukturer som HashSet HashMap Hashtable etc. Den största fördelen med att spara objekt baserat på hashkod är att sökningen blir enkel.
Notera: Åsidosättande av hashCode() Metoden måste göras så att för varje objekt genererar vi ett unikt nummer. Till exempel för en studentklass kan vi returnera rullnr. av en student från hashCode()-metoden eftersom den är unik.
Exempel:
offentlig klass Student {
int rulle;
@Åsidosätta
public int hashCode() {
returrulle;
}
}
Förklaring: De hashCode() metoden åsidosätts för att returnera ett anpassat hashvärde baserat på rullen för Student-objektet.
3. equals(Object obj) Metod
De lika() metod jämför det givna objektet med det aktuella objektet. Det rekommenderas att åsidosätta denna metod för att definiera anpassade jämställdhetsvillkor.
Notera: Det är i allmänhet nödvändigt att åsidosätta hashCode() metod närhelst denna metod åsidosätts för att bibehålla det allmänna kontraktet för hashCode-metoden som säger att lika objekt måste ha lika hashkoder.
Exempel:
offentlig klass Student {
int rulle;
@Åsidosätta
public boolean equals(Object o) {
if (o instans av Student) {
return this.roll == ((Student) o).roll;
}
returnera falskt;
}
}
Förklaring: De lika() metoden åsidosätts för att jämföra rulla mellan två studentobjekt.
4. getClass() metod
De getClass() metod returnerar klassobjektet för "detta" objekt och används för att få den faktiska körtidsklassen för objektet. Den kan också användas för att hämta metadata för denna klass. Det returnerade Class-objektet är objektet som är låst med statiska synkroniserade metoder för den representerade klassen. Eftersom det är slutgiltigt så åsidosätter vi det inte.
Exempel:
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()); } }
Produktion
Class of Object o is: java.lang.String
Förklaring: De getClass() metod används för att skriva ut runtime-klassen för objektet 'o'.
Notera: Efter att ha laddat en .class-fil kommer JVM att skapa ett objekt av typen java.lang.Class i Heap-området. Vi kan använda detta klassobjekt för att få information på klassnivå. Det används flitigt i Reflexion
5. finalize() metod
De avsluta() metoden anropas precis innan ett objekt samlas in som skräp. Det kallas för Sophämtare på ett föremål när sopsamlaren fastställer att det inte finns några fler referenser till föremålet. Vi bör åsidosätta finalize()-metoden för att göra oss av med systemresurser och utföra rensningsaktiviteter och minimera minnesläckor. Till exempel innan du förstör Servlet-objektens webbbehållare kallas alltid slutföringsmetoden för att utföra rensningsaktiviteter för sessionen.
Notera: Slutföringsmetoden kallas just en gång på ett objekt även om det objektet är berättigat till sophämtning flera gånger.
Exempel:
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'); } }
Produktion
1510467688 end finalize method called
Förklaring: De avsluta() metoden anropas precis innan objektet samlas in som skräp.
6. clone() metod
De klona() metod skapar och returnerar ett nytt objekt som är en kopia av det aktuella objektet.
Exempel:
public class Bok implementerar Cloneable {
privat String t; //titel
public Book(String t) {
detta.t = t;
}
@Åsidosätta
public Object clone() kastar CloneNotSupportedException {
returnera super.clone();
}
}
Förklaring: De klona() metoden åsidosätts för att returnera en klonad kopia av Bokobjekt .
7. Samtidighetsmetoder: wait() notify() och notifyAll()
Dessa metoder är relaterade till tråd Kommunikation i Java . De används för att få trådar att vänta eller meddela andra i samtidig programmering.
Exempel på användning av alla objektklassmetoder 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(); } }
Produktion
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
Förklaring: Ovanstående exempel visar användningen av toString() är lika med() hashCode() och klona() metoder i Bokklass .