logo

Objektni razred v Javi

Razred predmeta v Javi je prisoten v java.lang paket.

najdi v nizu c++
  • Vsak razred je neposredno ali posredno izpeljan iz razreda Object. Če razred ne razširja nobenega drugega razreda, je neposredni podrejeni razred Objektni razred Java in če razširi drug razred, potem je posredno izpeljan.
  • Razred Object ponuja več metod, kot npr toString()equals() hashCode() in mnogi drugi.
  • Razred Object deluje kot koren hierarhije dedovanja v katerem koli programu Java.

Tukaj uporabljamo toString() in hashCode() metode razreda Object da zagotovite predstavitev niza po meri za razred .



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());   } } 

Izhod
Person{name:'Geek'} 321001045 

Pojasnilo: V zgornjem primeru preglasimo toString() način zagotavljanja a predstavitev niza po meri razreda Oseba in uporabite hashCode() metoda za prikaz privzete vrednosti zgoščene kode predmeta.

Metode razreda objektov

Razred Object ponuja več metod, ki so naslednje:

  • metoda toString().
  • metoda hashCode().
  • metoda equals(Object obj).
  • metoda finalize().
  • metoda getClass().
  • metoda clone().
  • wait() notify() notifyAll() (metode sočasnosti)
Metode objektnega razreda v Javi' title=

1. Metoda toString().

The toString() ponuja nizovno predstavitev predmeta in se uporablja za pretvorbo predmeta v niz. Privzeta metoda toString() za razred Object vrne niz, sestavljen iz imena razreda, katerega primerek je objekt, znaka @ in nepredznačene šestnajstiške predstavitve zgoščene kode predmeta.



Opomba: Kadarkoli poskušamo natisniti katero koli referenco objekta, se interno kliče metoda toString().

primer:

javni razred Študent {



public String toString() {

vrni 'Student object';

}

}

Pojasnilo: Metoda toString() je preglasena, da vrne predstavitev niza po meri predmeta Student.

2. metoda hashCode().

Za vsak objekt JVM ustvari edinstveno številko, ki je hashcode. Vrne različna cela števila za različne predmete. Pogosta napačna predstava o tej metodi je, da metoda hashCode() vrne naslov predmeta, ki ni pravilen. Pretvori notranji naslov objekta v celo število z uporabo algoritma. Metoda hashCode() je domačin ker v Javi ni mogoče najti naslova predmeta, zato za iskanje naslova predmeta uporablja izvorne jezike, kot je C/C++.

Uporaba metode hashCode():

Vrne zgoščeno vrednost, ki se uporablja za iskanje predmetov v zbirki. JVM (Java Virtual Machine) uporablja metodo zgoščene kode, medtem ko shranjuje objekte v podatkovne strukture, povezane z zgoščevanjem, kot je HashSet HashMap Hashtable itd. Glavna prednost shranjevanja objektov na podlagi zgoščene kode je, da postane iskanje enostavno. 

Opomba: Preglasitev hashCode() metodo je treba izvesti tako, da za vsak predmet ustvarimo edinstveno številko. Na primer za študentski razred lahko vrnemo št. študenta iz metode hashCode(), saj je edinstvena. 

primer:

javni razred Študent {

int zvitek;

@Preglasi

public int hashCode() {

povratni zvitek;

}

}

Pojasnilo: The hashCode() metoda je preglasena, da vrne zgoščeno vrednost po meri na podlagi zvitka predmeta Student.

3. metoda equals(Object obj).

The enako () metoda primerja dani objekt s trenutnim objektom. Priporočljivo je, da to metodo preglasite, da definirate pogoje enakosti po meri.

Opomba: Na splošno je treba preglasiti hashCode() vedno, ko je ta metoda preglasena, da se ohrani splošna pogodba za metodo hashCode, ki navaja, da morajo enaki objekti imeti enake kode zgoščevanja. 

primer:

javni razred Študent {

int zvitek;


@Preglasi

public boolean equals(Object o) {

if (o instanceof Student) {

return this.roll == ((Študent) o).roll;

}

vrni false;

}

}

Pojasnilo: The enako () metoda je preglasena za primerjavo zvitek med dvema objektoma Student.

4. metoda getClass().

The getClass() metoda vrne objekt razreda 'tega' predmeta in se uporablja za pridobitev dejanskega izvajalnega razreda predmeta. Uporablja se lahko tudi za pridobivanje metapodatkov tega razreda. Vrnjeni objekt razreda je objekt, ki je zaklenjen s statičnimi sinhroniziranimi metodami predstavljenega razreda. Ker je dokončna, je ne preglasimo.

primer:

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());  } } 

Izhod
Class of Object o is: java.lang.String 

Pojasnilo: The getClass() metoda se uporablja za tiskanje izvajalnega razreda predmeta 'o'.

Opomba: Po nalaganju datoteke .class bo JVM ustvaril objekt tipa java.lang.Class na območju Heap. Ta predmet razreda lahko uporabimo za pridobitev informacij o ravni razreda. Veliko se uporablja v Odsev  

5. metoda finalize().

The dokončaj() metoda se pokliče tik preden se predmet pobere. Imenuje se Zbiralec smeti na objektu, ko zbiralec smeti ugotovi, da ni več sklicev na objekt. Preglasiti bi morali metodo finalize(), da bi odstranili sistemske vire, izvajali dejavnosti čiščenja in zmanjšali uhajanje pomnilnika. Na primer, pred uničenjem spletnega vsebnika objektov Servlet se vedno imenuje metoda finalize za izvajanje dejavnosti čiščenja seje. 

Opomba: Metoda finalize se imenuje just enkrat na objektu, čeprav je ta predmet večkrat primeren za zbiranje smeti. 

primer:

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');  } } 

Izhod
1510467688 end finalize method called 

Pojasnilo: The dokončaj() metoda se pokliče tik preden se objekt pobere.

6. metoda clone(). 

The klon() metoda ustvari in vrne nov objekt, ki je kopija trenutnega objekta.

primer:

javni razred Book izvaja Cloneable {

zasebni niz t; //naslov


javna knjiga (niz t) {

to.t = t;

}

@Preglasi

public Object clone() vrže CloneNotSupportedException {

vrni super.clone();

}

}

Pojasnilo: The klon() metoda je preglasena, da vrne klonirano kopijo Knjižni predmet .

7. Metode sočasnosti: wait() notify() in notifyAll()

Te metode so povezane z nit Komunikacija v Javi . Uporabljajo se za pripravo niti na čakanje ali obveščanje drugih pri sočasnem programiranju.

Primer uporabe vseh metod razreda objektov v Javi

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();  } } 

Izhod
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 

Pojasnilo: Zgornji primer prikazuje uporabo toString() enako() hashCode() in klon() metode v Knjižni razred .