logo

Object Class Java nyelven

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)
Object Class Methods Java nyelven' title=

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 .