Junior — Middle
Оё мумкин аст, ки усули equals бе пешакӣ дар синф такрор нашуда истифода шавад?
sobes.tech AI
Ҷавоб аз AI
Бале, метод equals метавонад бе такрор кардани он истифода шавад, чунки он аз класи Object мерос мегирад. Аммо дар ин ҳолат, рафтори метод стандартӣ хоҳад буд: муқоиса кардани ишораҳои объектҳо (яъне, санҷидани он, ки оё ду тағирёбари ба як объект дар хотира ишора мекунанд).
Агар лозим бошад, ки объектҳоро ба рӯи мазмун (масалан, ба арзишҳои майдонҳо) муқоиса кунед, бояд методи equals дар класи худ такрор карда шавад. Бе такрор кардан, муқоиса кор намекунад, чунон ки интизор меравад барои объектҳои мантиқӣ баробар.
Масалан:
class Person {
String name;
Person(String name) { this.name = name; }
}
Person p1 = new Person("Alice");
Person p2 = new Person("Alice");
System.out.println(p1.equals(p2)); // false, агар `equals` такрор нашуда бошад
Барои он ки муқоиса ба рӯи мазмун кор кунад, лозим аст, ки equals ва hashCode такрор карда шаванд.