Junior
Zašto se u Javi koriste metode equals() i toString()?
sobes.tech АИ
Одговор од АИ
Метода equals() се користи за поређење објеката у смислу логичке еквиваленције, односно одређује да ли два објекта представљају исту вредност или ентитет, без обзира на то да ли су физички исти објекат у меморији.
Метод toString() се користи за добијање низовне репрезентације објекта. По подразумеваној вредности, он враћа низ који садржи име класе и његов хеш код, али се често преписује како би пружио информативнији опис стања објекта.
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; // Поређење референци
if (o == null || getClass() != o.getClass()) return false; // Провера типа и null
ExampleObject that = (ExampleObject) o; // Преобраћање типа
return id == that.id && // Поређење по значајним пољима
name.equals(that.name);
}
@Override
public int hashCode() {
// Преписивање hashCode је обавезно када се преписује equals
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()`
System.out.println("obj1 equals obj2: " + obj1.equals(obj2)); // true - логички еквивалентни
System.out.println("obj1 equals obj3: " + obj1.equals(obj3)); // false - различити објекти
// Коришћење `toString()`
System.out.println("obj1 toString(): " + obj1.toString()); // Приказује низовну репрезентацију објекта
}
}