Java'da nesne karşılaştırması bağlamında equals metodunun ne anlama geldiğini açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da equals metodu, iki nesnenin içeriğini eşitlik açısından karşılaştırmak için kullanılır. Varsayılan olarak, eğer üzerine yazılmamışsa, Object sınıfının equals metodu referansları karşılaştırır, yani her iki değişkenin aynı bellek nesnesine işaret edip etmediğini kontrol eder.
Nesneleri değerlerine göre karşılaştırmak (örneğin, sınıfın alanlarıyla) için equals metodunu geçersiz kılmak gerekir. Bu metodun sözleşmesine uymak önemlidir: o, yansıtıcı, simetrik, transitif, tutarlı olmalı ve null ile karşılaştırıldığında false döndürmelidir.
Person sınıfında equals metodunun nasıl geçersiz kılınacağına dair örnek:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // kendisiyle karşılaştırma
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);
}
}
Bu şekilde, equals nesneleri referans yerine içeriklerine göre karşılaştırmaya olanak tanır.