Junior
Java'da equals() va toString() metodlari nima uchun ishlatiladi?
sobes.tech AI
AIdan javob
equals() metodu obyektlərin məntiqi ekvivalentliyini müqayisə etmək üçün istifadə olunur, yəni iki obyektin eyni dəyəri və ya varlığı təmsil etdiyini müəyyən edir, yaddaşda fiziki olaraq eyni obyekt olmalarına baxmayaraq.
toString() metodu obyektin sətir nümayişini almaq üçün istifadə olunur. Varsayılan olaraq, sinif adını və onun hash kodunu ehtiva edən bir sətir qaytarır, lakin çox vaxt obyektin vəziyyəti haqqında daha məlumatlı təsviri təmin etmək üçün yenidən təyin edilir.
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; // Referansların müqayisəsi
if (o == null || getClass() != o.getClass()) return false; // Növ və null yoxlaması
ExampleObject that = (ExampleObject) o; // Növün çevrilməsi
return id == that.id && // Əhəmiyyətli sahələrə görə müqayisə
name.equals(that.name);
}
@Override
public int hashCode() {
// equals() metodunu yenidən təyin etdikdə hashCode()-u da yenidən təyin etmək vacibdir
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() istifadə
System.out.println("obj1 equals obj2: " + obj1.equals(obj2)); // true - məntiqi olaraq eynidir
System.out.println("obj1 equals obj3: " + obj1.equals(obj3)); // false - fərqli obyektlər
// toString() istifadə
System.out.println("obj1 toString(): " + obj1.toString()); // Obyektin sətir nümayişini göstərəcək
}
}