Sobes.tech
Junior

equals() metodu ne yapar?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da equals() metodu iki nesneyi eşitlik açısından karşılaştırır.

Varsayılan olarak (sınıf Object içinde), nesne referanslarının aynı olup olmadığını kontrol eder (aynı bellek örneğine işaret edip etmediklerini).

Sınıflar, nesnelerin içeriklerine dayalı olarak mantıksal eşitliği belirlemek için bu metodu yeniden tanımlayabilirler (örneğin, iki String nesnesi, farklı örnekler olsalar bile, aynı karakter dizisini içeriyorsa eşit kabul edilir).

equals() metodunu yeniden tanımlarken, hashCode() metodunu da yeniden tanımlamak gerekir; çünkü şu anlaşma geçerlidir: Eğer iki nesne equals() ile eşitse, onların hashCode() değerleri de aynı olmalıdır.

Yeniden tanımlama örneği:

class MyClass {
    private int value;

    public MyClass(int value) {
        this.value = value;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true; // Referans karşılaştırması
        if (o == null || getClass() != o.getClass()) return false; // null ve sınıf kontrolü
        MyClass myClass = (MyClass) o; // Tür dönüşümü
        return value == myClass.value; // Mantıksal karşılaştırma
    }

    @Override
    public int hashCode() {
        return Objects.hash(value); // Hash kodu üretimi
    }
}