Junior
Mit tudsz az Object osztályról?
sobes.tech MI
Válasz az MI-től
A java.lang.Object a Java osztályhierarchia gyökérosztálya. Minden osztály implicit módon öröklődik az Object-től.
Főbb metódusok:
equals(Object obj): Összehasonlítja az aktuális objektumot egy másikkal az egyenlőség szempontjából. Alapértelmezés szerint referenciákat hasonlít össze.hashCode(): Visszaadja az objektum hash-kódját. Hash-alapú gyűjteményekben (pl.HashMap,HashSet) használják. Ha két objektum azequals()szerint egyenlő, akkorhashCode()értékük is egyezzen.toString(): Visszaadja az objektum szöveges reprezentációját. Alapértelmezés szerint a osztály neve +@+ a hash-kód hexadecimális formátumban. Gyakran felülírják informatívabb megjelenítésért.getClass(): Visszaadja az aktuális objektum osztályát reprezentálóClassobjektumot.notify(): Felébreszti az aktuális monitoron várakozó szálat.notifyAll(): Felébreszti az összes várakozó szálat az aktuális monitoron.wait()/wait(long timeout)/wait(long timeout, int nanos): Megállítja az aktuális szálat, amíg egy másik szál nem hívja megnotify()vagynotifyAll()-t, vagy amíg a megadott idő nem telik el. Csak szinkronizált blokkokban vagy metódusokban hívható.clone(): Létrehoz és visszaad egy másolatot az objektumról. Megköveteli aCloneableinterfész implementálását.finalize(): A szemétgyűjtő hívja meg az objektum törlése előtt. Nem ajánlott használni a kiszámíthatatlansága miatt.
Példa az equals() és hashCode() felülírására:
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
A Object osztály alapvető mechanizmusokat biztosít, amelyek szükségesek az objektumok működéséhez Java-ban, például összehasonlítás, hash-kód generálás, szálak szinkronizálása és osztályinformációk lekérése.