
"Merhaba, Amigo!"
"MERHABA!"
"Bugün Object sınıfını inceleyeceğiz.
Bununla zaten karşılaştınız ve Object'in tüm sınıflar için temel sınıf olduğunu biliyorsunuz. Neredeyse hiç verisi yok ama birkaç yöntemi var."
"Neden yöntemlere ihtiyaç duyuyor? Gerçekten Object sınıfının örneklerini yaratan var mı?"
"Şu açıdan bakın: Object sınıfındaki yöntemler tüm sınıflarda ortaktır. Diğer bir deyişle, Java'nın yaratıcıları, kendilerine göre her sınıfta olması gereken birkaç yöntem belirlediler ve bunları Object sınıfına eklediler."
"Ve polimorfizm (türetilmiş sınıflarda Object sınıfının yöntemlerini geçersiz kılma yeteneği) ile birleştirildiğinde, bu çok güçlü bir araç haline gelir."
"Bu yöntemlerin neler olduğunu görelim:"
Yöntem | Tanım |
---|---|
|
Nesnenin dize gösterimini döndürür. |
|
Nesneleri karşılaştırmak için kullanılan bir çift yöntem. |
|
Geçerli sınıfı tanımlayan özel bir nesne döndürür. |
|
Farklı iş parçacıklarından bir nesneye erişimi denetleme yöntemleri. İş parçacığı senkronizasyonu için. |
|
Bu yöntem, yerel Java dışı kaynakları serbest bırakmanıza izin verir: dosyaları, akışları vb. kapatın. |
|
Bu yöntem, bir nesneyi klonlamanıza izin verir: nesnenin bir kopyasını oluşturur. |
"Bu yöntemler 6 gruba ayrılabilir. Bazılarına zaten aşinasınız, gerisini de sonraki derslerde öğreneceğiz."
"Nedense burada yararlı bir şey göremiyorum."
"Amigo! Bu yöntemler önemli olmasaydı, onları her bir nesneye eklemezlerdi! O yüzden bunların ne olduğuna ve neden ihtiyaç duyulduğuna daha yakından bakmanı tavsiye ederim. Eğer sana önemsiz geliyorsa , o zaman ya bir şeyi anlamadın ya da bir şeyi doğru anlamadın."
"Tamam. Dikkatle dinleyeceğim."
"toString() yöntemiyle başlayalım.
"Bu yöntem, herhangi bir nesnenin metin açıklamasını almanızı sağlar. Nesne sınıfındaki uygulaması çok basittir:"
return getClass().getName() + "@" + Integer.toHexString(hashCode());
"getClass() ve hashCode() da Object sınıfının yöntemleridir.
Bu yöntemin çağrılması genellikle şöyle bir sonuç verir:"
java.lang.Object@12F456
"Peki böyle bir açıklamanın ne yararı var?"
"Bu açıklama, yöntemin çağrıldığı nesnenin sınıfını bilmenizi sağlar. Ayrıca nesneleri ayırt edebilirsiniz; farklı nesnelerin @ simgesinden sonra farklı rakamları olacaktır."
"Ancak bu yöntemin gerçek değeri başka yerde yatıyor. Daha ayrıntılı veya uygun bir nesne açıklaması döndürmek için bu yöntemin herhangi bir sınıfta üzerine yazılabilir."
"Ama dahası da var. Her nesnenin metin temsilini alabildiğiniz için Java, nesnelere Dizeler 'ekleme' desteğini uygulamanızı mümkün kıldı. Şuna bakın
:"
kod | gerçekten ne oluyor |
---|---|
|
|
|
|
|
|
"Evet, bunu düzenli olarak kullanıyorum. Özellikle program yazarken veya böcek ararken. Yararlı bir işlem."
GO TO FULL VERSION