Objektum osztály a Java nyelvben jelen van java.lang csomag.
tavaszi keret
- Minden osztály közvetlenül vagy közvetve az Object osztályból származik. Ha egy osztály nem bővít más osztályt, akkor az a közvetlen gyermekosztálya Java objektum osztály és ha kiterjeszti egy másik osztályt, akkor közvetett módon származik.
- Az Object osztály számos módszert biztosít, mint pl toString()equals() hashCode() és még sokan mások.
- Az Object osztály az öröklési hierarchia gyökereként működik bármely Java programban.
Itt használjuk a toString() és hashCode() Object osztály metódusai hogy egyéni karakterlánc-ábrázolást biztosítson egy osztály számára .
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()); } }
Kimenet
Person{name:'Geek'} 321001045 Magyarázat: A fenti példában felülírjuk a toString() módszer biztosítására a a Person osztály egyéni karakterlánc-reprezentációja és használja a hashCode() módszer az objektum alapértelmezett hash kódértékének megjelenítésére.
Objektumosztály módszerei
Az Object osztály több metódust kínál, amelyek a következők:
- toString() metódus
- hashCode() metódus
- egyenlő(Object obj) metódus
- finalize() metódus
- getClass() metódus
- clone() metódus
- vár() notify() notifyAll() (párhuzamossági metódusok)

1. toString() metódus
A toString() egy objektum karakterlánc-ábrázolását adja meg, és egy objektum karakterláncsá alakítására szolgál. Az Object osztály alapértelmezett toString() metódusa egy karakterláncot ad vissza, amely annak az osztálynak a nevéből, amelynek az objektum egy példánya, a „@” at-jelből és az objektum hash kódjának előjel nélküli hexadecimális reprezentációjából áll.
Jegyzet: Amikor megpróbálunk bármilyen objektum hivatkozást kinyomtatni, akkor a belső toString() metódus meghívódik.
Példa:
public class Diák {
public String toString() {
return 'Diák objektum';
}
}
Magyarázat: A toString() metódus felülbírálva a Student objektum egyéni karakterlánc-reprezentációját adja vissza.
2. hashCode() metódus
A JVM minden objektumhoz egyedi számot generál, amely egy hashkód. Különálló egész számokat ad vissza a különböző objektumokhoz. Egy általános tévhit ezzel a módszerrel kapcsolatban, hogy a hashCode() metódus az objektum címét adja vissza, ami nem helyes. Az objektum belső címét egész számmá alakítja egy algoritmus segítségével. A hashCode() metódus az bennszülött mivel a Java-ban lehetetlen megtalálni egy objektum címét, ezért natív nyelveket, például C/C++-t használ az objektum címének megtalálásához.
A hashCode() metódus használata:
Egy hash értéket ad vissza, amelyet a gyűjtemény objektumaiban keresnek. A JVM (Java Virtual Machine) a hashcode módszert használja, miközben az objektumokat kivonatoláshoz kapcsolódó adatstruktúrákba menti, mint például a HashSet HashMap Hashtable stb. Az objektumok hash kódon alapuló mentésének fő előnye, hogy a keresés egyszerűvé válik.
Jegyzet: Felülbírálása hashCode() módszert úgy kell megtenni, hogy minden objektumhoz egyedi számot generáljunk. Például egy tanulói osztálynál visszaküldhetjük a sz. egy tanulónak a hashCode() metódusból, mivel az egyedi.
Példa:
public class Diák {
int roll;
@Felülbírálás
public int hashCode() {
visszatekercs;
}
}
Magyarázat: A hashCode() metódus felülírva egyéni hash értéket ad vissza a Student objektum tekercsén alapulóan.
3. egyenlő(Object obj) Method
A egyenlő () metódus összehasonlítja az adott objektumot az aktuális objektummal. Javasoljuk, hogy felülbírálja ezt a módszert az egyéni egyenlőségi feltételek meghatározásához.
Jegyzet: Általában felül kell írni a hashCode() metódust, amikor ezt a metódust felülbírálják, hogy fenntartsák a hashCode metódusra vonatkozó általános szerződést, amely kimondja, hogy az egyenlő objektumoknak azonos hash kódokkal kell rendelkezniük.
Példa:
public class Diák {
int roll;
@Felülbírálás
public logikai egyenlő (Object o) {
if (O instanceof Student) {
return this.roll == ((tanuló) o).tekercs;
}
return false;
}
}
Magyarázat: A egyenlő () módszer felülírva az összehasonlításhoz tekercs két Student objektum között.
4. getClass() metódus
A getClass() metódus visszaadja az „ez” objektum osztályobjektumát, és az objektum tényleges futási osztályának lekérésére szolgál. Az osztály metaadatainak lekérésére is használható. A visszaadott osztály objektum az az objektum, amelyet a képviselt osztály statikus szinkronizált metódusai zárolnak. Mivel végleges, ezért nem írjuk felül.
Példa:
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()); } }
Kimenet
Class of Object o is: java.lang.String
Magyarázat: A getClass() metódus az „o” objektum futási osztályának kinyomtatására szolgál.
Jegyzet: A .class fájl betöltése után a JVM létrehoz egy ilyen típusú objektumot java.lang.Class a Heap területen. Ezt az osztályobjektumot használhatjuk osztály szintű információk lekérésére. Széles körben használják ben Visszaverődés
5. finalize() metódus
A véglegesít() metódus közvetlenül az objektum szemétgyűjtése előtt kerül meghívásra. Úgy hívják a Szemétgyűjtő egy objektumon, amikor a szemétgyűjtő megállapítja, hogy nincs több hivatkozás az objektumra. Felül kell írni a finalize() metódust a rendszererőforrások eltávolításához, tisztítási tevékenységek végrehajtásához és a memóriaszivárgások minimalizálásához. Például a Servlet objektumok megsemmisítése előtt mindig a finalize metódusnak hívják a munkamenet tisztítási tevékenységeinek végrehajtásához.
Jegyzet: A véglegesítési módszert justnak nevezzük egyszer egy objektumon, még akkor is, ha az objektum többször is jogosult szemétgyűjtésre.
Példa:
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'); } }
Kimenet
1510467688 end finalize method called
Magyarázat: A véglegesít() metódus közvetlenül az objektum szemétgyűjtése előtt kerül meghívásra.
6. klón() metódus
A klón() metódus létrehoz és visszaad egy új objektumot, amely az aktuális objektum másolata.
Példa:
public class Könyv eszközök Klónozható {
privát String t; //cím
public Book(t karakterlánc) {
this.t = t;
}
@Felülbírálás
public Object clone() CloneNotSupportedException {
return super.clone();
}
}
Magyarázat: A klón() metódus felülírásra kerül a klónozott másolat visszaadásához Könyv tárgy .
7. Egyidejűségi módszerek: wait() notify() és notifyAll()
Ezek a módszerek kapcsolódnak szál Kommunikáció Java nyelven . Arra használják, hogy a szálakat várakozzanak, vagy értesítsenek másokat a párhuzamos programozás során.
Példa az összes objektumosztály-metódus használatára Java-ban
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(); } }
Kimenet
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
Magyarázat: A fenti példa a használatát mutatja be toString() egyenlő() hashCode() és klón() módszerek a Könyvosztály .