Objektiluokka Javassa on läsnä java.lang paketti.
roomalaiset numerot kaavio 1 100
- Jokainen luokka on suoraan tai epäsuorasti johdettu Object-luokasta. Jos luokka ei laajenna mitään muuta luokkaa, se on ryhmän suora aliluokka Java-objektiluokka ja jos se laajentaa toista luokkaa, se on epäsuorasti johdettu.
- Object-luokka tarjoaa useita menetelmiä, kuten toString()equals() hashCode() ja monet muut.
- Object-luokka toimii perintöhierarkian juurena kaikissa Java-ohjelmissa.
Tässä käytämme toString() ja hashCode() Object-luokan menetelmät tarjota mukautettu merkkijonoesitys luokalle .
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()); } }
Lähtö
Person{name:'Geek'} 321001045 Selitys: Yllä olevassa esimerkissä ohitamme toString() tapa tarjota a Person-luokan mukautettu merkkijonoesitys ja käytä hashCode() menetelmä objektin oletushajakoodiarvon näyttämiseksi.
Objektiluokan menetelmät
Object-luokka tarjoaa useita menetelmiä, jotka ovat seuraavat:
- toString()-metodi
- hashCode() -menetelmä
- equals(Object obj) -metodi
- finalize() -menetelmä
- getClass() -menetelmä
- klooni() -menetelmä
- odota() notify() notifyAll() (Samanaikaisuusmenetelmät)

1. toString()-menetelmä
The toString() tarjoaa objektin merkkijonoesityksen ja sitä käytetään muuntamaan objekti merkkijonoksi. Luokan Object oletusmenetelmä toString() palauttaa merkkijonon, joka koostuu sen luokan nimestä, jonka esiintymä objekti on, at-merkkimerkistä `@' ja objektin hajakoodin etumerkittömästä heksadesimaalimuodosta.
Huomautus: Aina kun yritämme tulostaa minkä tahansa objektiviittauksen, kutsutaan sisäisesti toString()-menetelmää.
Esimerkki:
julkinen luokka Opiskelija {
public String toString() {
return 'Opiskelijaobjekti';
}
}
Selitys: ToString()-metodi ohitetaan palauttamaan Student-objektin mukautettu merkkijonoesitys.
2. hashCode() -menetelmä
Jokaiselle objektille JVM luo yksilöllisen numeron, joka on hashcode. Se palauttaa erilliset kokonaisluvut erillisille objekteille. Yleinen väärinkäsitys tästä menetelmästä on, että hashCode()-metodi palauttaa kohteen osoitteen, joka ei ole oikea. Se muuntaa objektin sisäisen osoitteen kokonaisluvuksi algoritmin avulla. HashCode()-menetelmä on syntyperäinen koska Javassa on mahdotonta löytää objektin osoitetta, joten se käyttää alkuperäisiä kieliä, kuten C/C++, löytääkseen objektin osoitteen.
HashCode()-menetelmän käyttö:
Se palauttaa hash-arvon, jota käytetään kokoelman kohteiden etsimiseen. JVM (Java Virtual Machine) käyttää hashcode-menetelmää tallentaessaan objekteja tiivistykseen liittyviin tietorakenteisiin, kuten HashSet HashMap Hashtable jne. Hash-koodiin perustuvien objektien tallentamisen tärkein etu on, että hausta tulee helppoa.
Huomautus: Ohitus hashCode() menetelmä on tehtävä siten, että jokaiselle objektille luodaan yksilöllinen numero. Esimerkiksi opiskelijaluokalle voimme palauttaa rullan nro. opiskelijan hashCode()-menetelmästä, koska se on ainutlaatuinen.
Esimerkki:
julkinen luokka Opiskelija {
int roll;
@Ohittaa
public int hashCode() {
paluurulla;
}
}
Selitys: The hashCode() menetelmä ohitetaan palauttamaan mukautettu hash-arvo Student-objektin rullauksen perusteella.
3. on yhtä kuin (Object obj) Method
The on yhtä suuri () menetelmä vertaa annettua objektia nykyiseen objektiin. On suositeltavaa ohittaa tämä menetelmä mukautettujen tasa-arvoehtojen määrittämiseksi.
Huomautus: Yleensä on välttämätöntä ohittaa hashCode() -menetelmää aina, kun tämä menetelmä ohitetaan, jotta säilytetään yleissopimus hashCode-metodille, jonka mukaan samoilla objekteilla on oltava samat hash-koodit.
Esimerkki:
julkinen luokka Opiskelija {
int roll;
@Ohittaa
julkinen boolean on yhtä kuin(Object o) {
if (o instanceof Student) {
return this.roll == ((Opiskelija) o).roll;
}
palauttaa väärä;
}
}
Selitys: The on yhtä suuri () menetelmä ohitetaan vertailtaessa rullaa kahden opiskelijaobjektin välillä.
4. getClass()-metodi
The getClass() menetelmä palauttaa 'tämän' objektin luokkaobjektin ja sitä käytetään saamaan objektin todellinen ajonaikainen luokka. Sitä voidaan käyttää myös tämän luokan metatietojen hankkimiseen. Palautettu luokkaobjekti on objekti, joka on lukittu esitetyn luokan staattisilla synkronoiduilla menetelmillä. Koska se on lopullinen, emme ohita sitä.
Esimerkki:
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()); } }
Lähtö
Class of Object o is: java.lang.String
Selitys: The getClass() menetelmää käytetään o-objektin ajonaikaisen luokan tulostamiseen.
Huomautus: .class-tiedoston lataamisen jälkeen JVM luo tyyppisen objektin java.lang.Class Kasan alueella. Voimme käyttää tätä luokkaobjektia luokkatason tietojen saamiseksi. Sitä käytetään laajasti Heijastus
5. finalize()-menetelmä
The viimeistellä () menetelmää kutsutaan juuri ennen kuin objekti kerätään roskat. Sitä kutsutaan nimellä Roskien kerääjä objektissa, kun roskankerääjä toteaa, ettei objektiin ole enää viittauksia. Meidän tulee ohittaa finalize()-menetelmä, jotta järjestelmäresurssit voidaan hävittää, jotta voimme suorittaa puhdistustoimia ja minimoida muistivuotoja. Esimerkiksi ennen Servlet-objektien verkkosäiliön tuhoamista kutsutaan aina finalize-menetelmäksi istunnon puhdistustoimintojen suorittamiseksi.
Huomautus: Viimeistelymenetelmää kutsutaan vain kerran objektiin, vaikka se olisi kelvollinen roskienkeräykseen useita kertoja.
Esimerkki:
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'); } }
Lähtö
1510467688 end finalize method called
Selitys: The viimeistellä () menetelmää kutsutaan juuri ennen kuin objekti kerätään roskat.
6. clone()-menetelmä
The klooni() menetelmä luo ja palauttaa uuden objektin, joka on kopio nykyisestä objektista.
Esimerkki:
public class Kirjatyökalut Kloonattava {
yksityinen merkkijono; //otsikko
julkinen kirja(merkkijono t) {
this.t = t;
}
@Ohittaa
public Object clone() heittää CloneNotSupportedException {
return super.clone();
}
}
Selitys: The klooni() -menetelmä ohitetaan palauttamaan kloonattu kopio Kirja esine .
7. Samanaikaisuusmenetelmät: odota() notify() ja notifyAll()
Nämä menetelmät liittyvät viestiketju Javassa . Niitä käytetään saamaan säikeet odottamaan tai ilmoittamaan muille samanaikaisessa ohjelmoinnissa.
Esimerkki kaikkien objektiluokkamenetelmien käytöstä Javassa
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(); } }
Lähtö
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
Selitys: Yllä oleva esimerkki osoittaa käytön toString() equals() hashCode() ja klooni() menetelmät Kirja luokka .