Junior — Middle
Կարող եք բացատրել, թե ինչ է նշանակում equals մեթոդը Java-ում օբյեկտների համեմատության համատեքստում?
sobes.tech AI
Պատասխան AI-ից
Java-յում, equals մեթոդը օգտագործվում է երկու օբյեկտների պարունակությունը համեմատելու համար հավասարության համար: Դեպքում, եթե այն չի վերագրած, Object դասի equals մեթոդը համեմատում է հղումները, այսինքն՝ ստուգում է, արդյոք երկու փոփոխականները ցույց են տալիս նույն օբյեկտին հիշողության մեջ:
Որպեսզի օբյեկտները համեմատենք արժեքով (օրինակ, դասի դաշտերով), անհրաժեշտ է վերագրել equals մեթոդը: Կարևոր է պահպանել մեթոդի պայմանագիրը՝ այն պետք է լինի ռեֆլեկտիվ, սիմետրիկ, տրանսիտիվ, համահունչ և չպետք է լինի null-ի հավասար:
Օրինակ՝ Person դասում equals մեթոդի վերագրում:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // համեմատում է ինքն իր հետ
if (obj == null || getClass() != obj.getClass()) return false;
Person other = (Person) obj;
return age == other.age && Objects.equals(name, other.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
Այսպիսով, equals թույլ է տալիս համեմատել օբյեկտները ըստ բովանդակության, ոչ թե ըստ հղման։