Junior — Middle
Javaда объекттерди салыштырганда equals ыкмамасы эмне мааниге ээ экенин түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
Java-da, equals metodu iki ob'ektnıń mazmunın teńlikke qarap salu úshin qollanıla. Standart, eger ol üstürilemese, Object sinfiniń equals metodu referensiyalarını salıstıra, yəni, ikilіńe degeni bellekte bir ob'ektiń üstünde tura aladı.
Ob'ektnıń qıymetі boyınsha salıstıru (mısal, sinf maydandarınıń) úshin equals metodın üstüriw kerek. Metodnıń shartlarına uııw muhim: ol refleksiv, simmetrik, transitiv, konsistent bolıwı kerek hám null men teń bolmawı kerek.
Person sinfında equals metodınıń qanday üstüriwіne misal:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // özіmen salıstıruw
if (obj == null || getClass() != obj.getClass()) return false;
Person other = (Person) obj;
return age == other.age && Objects.equals(name, other.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
Bunday, equals ob'ektnıń mazmunı boyınsha salıstıruwına mümkindik beredi, referensiya emes.