Junior
Ի՞նչ նպատակով են օգտագործվում Java-ում equals() և toString() մեթոդները։
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()); // Տողային ներկայացում օբյեկտի
}
}