8. Method OVERRIDING nedir? toString, equals, hashCode
Irmak Özonay
0:00 / 0:00
8. Method OVERRIDING nedir? toString, equals, hashCode
1 170 просмотров · 4 г. назад
Irmak Özonay
3,72 тыс. подписчиков
1 170 просмотров · 4 г. назад
Method overriding kavramını inceleme.
Java’ya Giriş Referans Kitapçığı ► https://www.rmkod.com/java-referans-k...
Instagram ► / irmakozonay
Twitter ► / irmakozonay
Bu videoda method overridinge bakacağız.
Method override etmek alt bir sınıfın, inherit ettiği sınıfta bulunan bir methodun implementasyonunu kendisi yapması anlamına gelir.
Bu methodlarda @Override annotationı (gösterimi) kullanılır.
Java’da tüm sınıflar Java’nın Object classında inherit eder. Bu sayede Object classında bulunan toString, equals, hashCode gibi methodları override ederek kendi methodlarımızı oluşturabiliriz.
@Override
public String toString() {
return "price:" + getPrice() + " power:" + getPower() + " durability:" + getDurability();
}
İki objenin birbirine eşit olduğuna, referans adresleri ile değil de belli fieldlara bağlı değerler ile karar vermek gerekiyorsa equals methodu override edilebilir. Normalde equals iki objeyi referans adresinlerine göre karşılaştırır, ancak bu override edilebilir. Aşağıdaki örnekte Player objesinin birbirine eşitliğine age ve name kriterlerine göre karar verilir. name ve age aynı ise iki obje aynıdır, true döndürülür.
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Player other = (Player) obj;
return age == other.age && Objects.equals(name, other.name);
}
hashcode methodu çağırılarak her obje ile ilişkilendirilen integer değere ulaşılabilir. equalsun override edildiği durumlarda hashcode da override edilmeli. Bunun sebebi hashmapler kullanılırken hashcodeun kullanılıyor olmasıdır.
@Override
public int hashCode() {
return Objects.hash(age, name);
}