Junior
Milleks kasutatakse Java keeles meetodeid equals() ja toString()?
sobes.tech AI
Vastus AI-lt
equals() meetodit kasutatakse objektide võrdlemiseks loogilise ekvivalentsuse jaoks, see tähendab, et määrata, kas kaks objekti esindavad sama väärtust või olemust, sõltumata sellest, kas nad on füüsiliselt sama objekt mälus.
toString() meetodit kasutatakse objekti stringi kujutise saamiseks. Tavaliselt tagastab see klassi nime ja selle hash-koodi, kuid sageli ülekirjutatakse, et pakkuda informatiivsemat objekti oleku kirjelduse.
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; // viidete võrdlus
if (o == null || getClass() != o.getClass()) return false; // tüüpide ja null kontroll
ExampleObject that = (ExampleObject) o; // tüüpide ümberkonverteerimine
return id == that.id && // oluliste väljade võrdlus
name.equals(that.name);
}
@Override
public int hashCode() {
// hashCode ülekirjutamine on kohustuslik koos 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()` kasutamine
System.out.println("obj1 equals obj2: " + obj1.equals(obj2)); // tõene - loogiliselt ekvivalent
System.out.println("obj1 equals obj3: " + obj1.equals(obj3)); // väär - erinevad objektid
// `toString()` kasutamine
System.out.println("obj1 toString(): " + obj1.toString()); // objekti stringi esitus
}
}