Junior
Методҳои equals() ва toString() дар Java барои чӣ истифода мешаванд?
sobes.tech AI
Ҷавоб аз AI
Метод equals() истифода мешавад барои муқоиса кардани объектҳо дар маънои баробарии логикӣ, яъне муайян мекунад, ки оё ду объект арзиши ё шахсияти якхеларо намояндагӣ мекунанд, новобаста аз он ки онҳо дар хотира объектҳои физикӣ ҳастанд ё не.
Метод toString() барои гирифтани намоиши сатрии объект истифода мешавад. Ба таври пешфарз, он сатреро бармегардонад, ки номи синф ва коди hash-ро дар бар мегирад, аммо аксар вақт онро барқарор мекунанд, то тавсифи бештар дар бораи ҳолати объект пешниҳод кунанд.
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()); // Намояндаии сатрии объектро нишон медиҳад
}
}