Junior
Java'da equals() metodu ne yapar?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da equals() yöntemi, nesneleri eşitlik açısından karşılaştırmak için kullanılır. Varsayılan olarak, Object sınıfında, nesne referanslarını karşılaştırır (iki değişkenin aynı bellek üzerindeki nesneye işaret edip etmediğini kontrol eder).
Sınıflar, equals() yöntemini yeniden tanımlayarak değer karşılaştırması mantığını uygulayabilir. Bu, iki farklı nesnenin, alanları veya durumu eşdeğer ise, eşit kabul edildiği anlamına gelir.
equals() yeniden tanımlanırken, hashCode() yönteminin de yeniden tanımlanması önemlidir ve sözleşmeye uyulmalıdır: Eğer iki nesne equals() ile eşitse, onların hashCode() değerleri de aynı olmalıdır.
Yeniden tanımlama örneği:
public class Person {
private String name;
private int age;
// yapıcı ve getterlar
@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);
}
}