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 საშუალებას აძლევს ობიექტების შედარებას შინაარსის მიხედვით, არა მითითების მიხედვით.