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()); // ობიექტის სტრიქონული წარმოდგენა
}
}