Object Class Java nyelven

Object Class Java nyelven

Objektum osztály a Java nyelvben jelen van java.lang csomag.

  • 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)
Object Class Methods Java nyelven

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

Java
   import     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 .