Junior
За какво се използват методите equals() и toString() в Java?
sobes.tech AI
Отговор от AI
Методът 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()); // Ще покаже низовото представяне на обекта
}
}