logo

Objektų klasė Java

Objektų klasė Java yra java.lang paketą.

sąrašą rūšiuoti java
  • Kiekviena klasė yra tiesiogiai arba netiesiogiai kilusi iš objektų klasės. Jei klasė neišplečia jokios kitos klasės, tai yra tiesioginė antrinė klasė Java objektų klasė ir jei jis išplečia kitą klasę, tada jis yra netiesiogiai išvestas.
  • Objektų klasėje pateikiami keli metodai, pvz toString()lygu() maišos kodas () ir daugelis kitų.
  • Objektų klasė bet kurioje „Java“ programoje veikia kaip paveldėjimo hierarchijos šaknis.

Čia mes naudojame toString() ir maišos kodas () Objektų klasės metodai teikti pasirinktinę eilutės atvaizdavimą klasei .



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

Išvestis
Person{name:'Geek'} 321001045 

Paaiškinimas: Aukščiau pateiktame pavyzdyje mes nepaisome toString() būdas pateikti a priskirtas Asmens klasės eilutės atvaizdavimas ir naudokite maišos kodas () būdas parodyti numatytąją objekto maišos kodo reikšmę.

Objektų klasės metodai

Objektų klasė pateikia kelis metodus, kurie yra tokie:

  • toString() metodas
  • HashCode() metodas
  • lygus(Object obj) metodas
  • Finalize() metodas
  • getClass() metodas
  • klono() metodas
  • palauk() notify() notifyAll() (lygiagretumo metodai)
Objektų klasės metodai Java' title=

1. toString() metodas

The toString() pateikia objekto eilutės atvaizdavimą ir yra naudojamas konvertuoti objektą į eilutę. Numatytasis metodas toString() klasei Object grąžina eilutę, kurią sudaro klasės, kurios egzempliorius yra objektas, pavadinimo, at-ženklo simbolio „@“ ir nepaženklinto šešioliktainio objekto maišos kodo atvaizdo.



Pastaba: Kai bandome spausdinti bet kokią objekto nuorodą, viduje iškviečiamas toString() metodas.

Pavyzdys:

viešoji klasė Mokinys {



public String toString() {

grąžinti 'Studento objektas';

}

}

Paaiškinimas: Metodas toString() yra nepaisomas, kad būtų grąžinta pasirinktinė Studento objekto eilutė.

2. HashCode() metodas

Kiekvienam objektui JVM generuoja unikalų numerį, kuris yra maišos kodas. Jis grąžina skirtingus sveikuosius skaičius skirtingiems objektams. Įprasta klaidinga nuomonė apie šį metodą yra ta, kad metodas hashCode() grąžina neteisingą objekto adresą. Jis konvertuoja vidinį objekto adresą į sveikąjį skaičių naudodamas algoritmą. HashCode() metodas yra gimtoji nes Java neįmanoma rasti objekto adreso, todėl ji naudoja gimtąsias kalbas, tokias kaip C/C++, kad surastų objekto adresą.

HashCode() metodo naudojimas:

Jis grąžina maišos reikšmę, kuri naudojama ieškant objektų kolekcijoje. JVM (Java Virtual Machine) naudoja maišos kodo metodą, išsaugodama objektus su maiša susijusiose duomenų struktūrose, pvz., HashSet HashMap Hashtable ir kt. Pagrindinis objektų išsaugojimo pagal maišos kodą pranašumas yra tai, kad paieška tampa lengva. 

Pastaba: Nepaisyti maišos kodas () metodas turi būti atliktas taip, kad kiekvienam objektui sugeneruotume unikalų skaičių. Pavyzdžiui, studentų klasei galime grąžinti ritinėlį Nr. studento iš hashCode() metodo, nes jis yra unikalus. 

Pavyzdys:

viešoji klasė Mokinys {

int roll;

@Nepaisyti

public int hashCode() {

grąžinamas ritinys;

}

}

Paaiškinimas: The maišos kodas () Metodas yra nepaisomas, kad būtų grąžinta pasirinktinė maišos reikšmė, pagrįsta Studento objekto ritiniu.

3. lygus(Object obj) Metodas

The lygus () metodas lygina duotą objektą su esamu objektu. Norint apibrėžti pasirinktines lygybės sąlygas, rekomenduojama nepaisyti šio metodo.

Pastaba: Paprastai būtina nepaisyti maišos kodas () metodas, kai šis metodas yra nepaisomas, kad būtų išlaikyta bendroji „hashCode“ metodo sutartis, kurioje teigiama, kad vienodi objektai turi turėti vienodus maišos kodus. 

Pavyzdys:

viešoji klasė Mokinys {

int roll;


@Nepaisyti

viešasis loginis lygus(Object o) {

if (o instanceof Student) {

return this.roll == ((Studentas) o).roll;

}

return false;

}

}

Paaiškinimas: The lygus () metodas yra nepaisomas lyginant ritinys tarp dviejų Studentų objektų.

4. getClass() metodas

The getClass () Metodas grąžina „šio“ objekto klasės objektą ir yra naudojamas norint gauti tikrąją objekto vykdymo klasę. Jis taip pat gali būti naudojamas šios klasės metaduomenims gauti. Grąžintas klasės objektas yra objektas, užrakintas statiniais sinchronizuotais atstovaujamos klasės metodais. Kadangi jis yra galutinis, mes jo nepaisome.

Pavyzdys:

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

Išvestis
Class of Object o is: java.lang.String 

Paaiškinimas: The getClass () metodas naudojamas spausdinti „o“ objekto vykdymo klasę.

Pastaba: Įkėlus .class failą JVM sukurs tokio tipo objektą java.lang.Class Krūvos srityje. Šį klasės objektą galime naudoti norėdami gauti klasės lygio informaciją. Jis plačiai naudojamas Atspindys  

5. finalize() metodas

The užbaigti () metodas iškviečiamas prieš pat objektą surenkant šiukšles. Jis vadinamas Šiukšlių surinkėjas ant objekto, kai šiukšlių surinkėjas nustato, kad nuorodų į objektą nebėra. Turėtume nepaisyti finalize() metodo, kad pašalintume sistemos išteklius, atliktume valymo veiksmus ir sumažintume atminties nutekėjimą. Pavyzdžiui, prieš sunaikinant „Servlet“ objektų žiniatinklio konteinerį, visada vadinamas užbaigimo metodu, kad būtų atlikta seanso valymo veikla. 

Pastaba: Užbaigimo metodas vadinamas tiesiog vieną kartą objekte, nors tas objektas yra tinkamas šiukšlių rinkimui kelis kartus. 

Pavyzdys:

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

Išvestis
1510467688 end finalize method called 

Paaiškinimas: The užbaigti () metodas iškviečiamas prieš pat objektą surenkant šiukšles.

6. klono() metodas 

The klonas () metodas sukuria ir grąžina naują objektą, kuris yra dabartinio objekto kopija.

Pavyzdys:

public class Knygų padargai Cloneable {

privati ​​String t; //pavadinimas


vieša knyga (eilutė t) {

tai.t = t;

}

@Nepaisyti

public Object clone() meta CloneNotSupportedException {

grąžinti super.clone();

}

}

Paaiškinimas: The klonas () Metodas nepaisomas norint grąžinti klonuotą kopiją Knygos objektas .

7. Lygiagretumo metodai: palauk() notify() ir notifyAll()

Šie metodai yra susiję su gija Bendravimas Java . Jie naudojami tam, kad gijos lauktų arba praneštų kitiems tuo pačiu metu programuojant.

Visų „Java“ objektų klasės metodų naudojimo pavyzdys

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

Išvestis
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 

Paaiškinimas: Aukščiau pateiktame pavyzdyje parodytas naudojimas toString() lygus() hashCode() ir klonas () metodai Knygų klasė .