Junior
Mida sa tead Object klassist?
sobes.tech AI
Vastus AI-lt
java.lang.Object on Java klasside hierarhia juurklass. Iga klass pärib kaudselt Object-ist.
Peamised meetodid:
equals(Object obj): Võrdleb praegust objekti teise objektiga võrdsuse jaoks. Vaikimisi võrdleb viiteid.hashCode(): Tagastab objekti hash-koodi. Kasutatakse hash-tabelitel põhinevates kogumikes (näiteksHashMap,HashSet). Kui kaks objekti onequals()järgi võrdsed, peavad nendehashCode()-d olema samad.toString(): Tagastab objekti tekstilise esitluse. Vaikimisi tagastab klassi nime +@+ hash-koodi heksadesimaalses vormis. Enamasti ülekirjutatakse, et pakkuda informatiivsemat esitamist.getClass(): TagastabClassobjekti, mis esindab objekti klassi jooksvalt.notify(): Taastab ühe ootev niidi, mis ootab selle objekti monitoril.notifyAll(): Taastab kõik ootevad niidid, mis ootavad selle objekti monitoril.wait()/wait(long timeout)/wait(long timeout, int nanos): Surub praeguse niidi ootama, kuni teine niit kutsub väljanotify()võinotifyAll()või aeg lõppeb. Kutsutakse ainult sünkroniseeritud plokkidest või meetoditest.clone(): Loob ja tagastab selle objekti koopia. VajabCloneableliidest.finalize(): Kutsutakse prügikoristaja poolt enne objekti eemaldamist. Ei soovitata kasutada ebakindluse tõttu.
Näide equals() ja hashCode() ülekirjutamisest:
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 +
'}';
}
}
Object klass tagab põhimekaanismid, mis on vajalikud objektidega töötamiseks Java-s, nagu võrdlemine, hashimine, niitide sünkroniseerimine ja teabe saamine klassi kohta.