Junior
Čo vieš o triede Object?
sobes.tech AI
Odpoveď od AI
java.lang.Object je koreňová trieda v hierarchii tried Java. Každá trieda nevyhnutne dedí od Object.
Hlavné metódy:
equals(Object obj): Porovnáva aktuálny objekt s iným objektom na rovnosť. Predvolene porovnáva odkazy.hashCode(): Vráti hash kód objektu. Používa sa v kolekciách založených na hash tabuľkách (napríkladHashMap,HashSet). Ak sú dva objekty rovnaké podľaequals(), ichhashCode()by mali byť rovnaké.toString(): Vráti reťazcovú reprezentáciu objektu. Predvolene vracia názov triedy +@+ hash kód v šestnástkovej forme. Často sa prepísuje na poskytnutie informatívnejšej reprezentácie.getClass(): Vráti objektClass, ktorý reprezentuje triedu objektu počas behu.notify(): Obnoví vykonávanie jedného vlákna čakajúceho na monitore tohto objektu.notifyAll(): Obnoví vykonávanie všetkých vlákien čakajúcich na monitore tohto objektu.wait()/wait(long timeout)/wait(long timeout, int nanos): Donúti aktuálne vlákno čakať, kým iné vlákno ne zavolá metódynotify()alebonotifyAll()pre tento objekt alebo nevyprší stanovený čas. Volá sa iba zo synchronizovaných blokov alebo metód.clone(): Vytvorí a vráti kópiu tohto objektu. Vyžaduje implementáciu rozhraniaCloneable.finalize(): Volá sa garbage collectorom pred odstránením objektu. Neodporúča sa používať kvôli nepredvídateľnosti vykonávania.
Príklad prepísania equals() a hashCode():
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 +
'}';
}
}
Trieda Object zabezpečuje základné mechanizmy potrebné pre prácu s objektmi v Jave, ako sú porovnávanie, hashovanie, synchronizácia vlákien a získavanie informácií o triede.