Junior
Javaда equals() жана toString() методдору эмне үчүн колдонулат?
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)); // чын - логикалык жактан барабар
System.out.println("obj1 equals obj3: " + obj1.equals(obj3)); // жалган - ар башка объекттер
// `toString()` колдонуу
System.out.println("obj1 toString(): " + obj1.toString()); // Объекттин саптык көрсөтмөсү
}
}