Junior
Java'da equals() ve toString() metodları ne için kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
equals() yöntemi, nesneleri mantıksal eşdeğerlik açısından karşılaştırmak için kullanılır, yani iki nesnenin aynı değeri veya varlığı temsil edip etmediğini belirler, bellekte fiziksel olarak aynı nesne olup olmadıklarına bakılmaksızın.
toString() yöntemi, nesnenin dize temsiliğini almak için kullanılır. Varsayılan olarak, sınıf adını ve onun karma kodunu içeren bir dize döndürür, ancak genellikle nesnenin durumu hakkında daha bilgilendirici bir açıklama sağlamak için yeniden tanımlanır.
public class ExampleObject {
private int id;
private String name;
public ExampleObject(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true; // Referans karşılaştırması
if (o == null || getClass() != o.getClass()) return false; // Tür ve null kontrolü
ExampleObject that = (ExampleObject) o; // Tür dönüşümü
return id == that.id && // Anlamlı alanlar karşılaştırması
name.equals(that.name);
}
@Override
public int hashCode() {
// equals() metodunu yeniden tanımlarken hashCode()'u da yeniden tanımlamak zorunludur
return Objects.hash(id, name);
}
@Override
public String toString() {
return "ExampleObject{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public static void main(String[] args) {
ExampleObject obj1 = new ExampleObject(1, "Test");
ExampleObject obj2 = new ExampleObject(1, "Test");
ExampleObject obj3 = new ExampleObject(2, "Another");
// equals() kullanımı
System.out.println("obj1 equals obj2: " + obj1.equals(obj2)); // true - mantıksal olarak eşdeğer
System.out.println("obj1 equals obj3: " + obj1.equals(obj3)); // false - farklı nesneler
// toString() kullanımı
System.out.println("obj1 toString(): " + obj1.toString()); // Nesnenin dize temsili gösterilir
}
}