Junior
Шумо дар бораи синфи Object чӣ медонед?
sobes.tech AI
Ҷавоб аз AI
java.lang.Object дар омили решаи асосии дар ҳиёрархияи синфҳои Java мебошад. Ҳар як синф ба таври ғайрирасмӣ аз Object мерос мегирад.
Методҳои асосӣ:
equals(Object obj): Объекти ҳозираро бо дигар объект барои баробарӣ муқоиса мекунад. Ба таври пешфарз муқоиса мекунад бо ишораҳо.hashCode(): Кодекоди хеши объектро бармегардонад. Дар коллексияҳое, ки асос ёфтаанд ба таблицҳои хеш (масалан,HashMap,HashSet) истифода мешавад. Агар ду объект баробар бошанд дарequals(), боядhashCode()онҳо ҳамон қадар бошанд.toString(): Намояндаии стрингии объектро бармегардонад. Ба таври пешфарз номи синф +@+ кодекоди хеш дар формати ҳексадецималӣ бармегардонад. Бештар барои пешниҳоди намояндаи бештар маълумот дода мешавад.getClass(): ОбъектиClass-ро, ки синфи объектро дар вақти иҷро нишон медиҳад, бармегардонад.notify(): иҷрои як ҷараёнро, ки дар интизор аст, дар мониторини ин объект такмил медиҳад.notifyAll(): иҷрои ҳамаи ҷараёнҳоро, ки дар интизор ҳастанд, дар мониторини ин объект такмил медиҳад.wait()/wait(long timeout)/wait(long timeout, int nanos): ҷараёни ҳозираро маҷбур мекунад, ки интизор шавад, то дигар ҷараёнҳоnotify()ёnotifyAll()-ро барои ин объект даъват кунанд ё вақте ки вақти муайяншуда ба охир мерасад. Ин метод танҳо аз блокҳо ё методҳои синхронизатсияшуда даъват мешавад.clone(): нусхаи ин объектро месозад ва бармегардонад. Имплементацияи интерфейсиCloneable-ро талаб мекунад.finalize(): пеш аз нест кардани объект аз ҷониби ҷамъкунандаи партовҳо даъват мешавад. Барои истифода тавсия намедиҳад, зеро иҷрои он ғайриинтизор аст.
Масалан, ки чӣ гуна equals() ва 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 +
'}';
}
}
Класа Object таъмин мекунад асосҳои механизмҳо, ки барои кор бо объектҳо дар Java заруранд, аз ҷумла муқоиса, хешакорӣ, синхронизатсия ва гирифтани маълумот дар бораи синф.