06.03.2015 Views

Java Kitabı

JAva`nın çalışma mantığıyla başlayıp basitten gelişmişe iyi bir kaynak

JAva`nın çalışma mantığıyla başlayıp basitten gelişmişe iyi bir kaynak

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Bu sayede Object nesnesine ait eriĢebilir yordamları kullanabiliriz. Object nesnesine ait yordamlar<br />

aĢağıdaki gibidir: ()<br />

clone(): Bu nesnenin (this) aynısını klonlar ve yeni nesneyi döndürür. ()<br />

equals(Object obj): obj referansına bağlı olan nesnenin, kendisine (this) eĢit<br />

olup olmadığı kontrolü yapan yordam. ()<br />

finalize(): Çöp toplayıcısı tarafından silinmeden önce çalıĢtırılan yordam. ()<br />

getClass(): Bu nesnenin (this) çalıĢma anındaki sınıf bilgilerini Class nesnesi<br />

Ģeklinde geri döner. ()<br />

hashCode(): Bu nesnenin (this) hash kodunu geri döner.<br />

notify(): Bu nesnenin (this), monitöründe olan tek bir iĢ parçacığını (thread)<br />

uyandırır. (ilerleyen bölümlerde inceleyeceğiz) ()<br />

notifyAll(): Bu nesnenin (this), monitöründe olan tüm iĢ parçacıklarını (thread)<br />

uyandırır. (ilerleyen bölümlerde incelenecektir) ()<br />

toString(): Bu nesnenin (this), String tipindeki ifadesini geri döner. ()<br />

wait(): O andaki iĢ parçacığının (thread) beklemesini sağlar; Bu bekleme notify()<br />

veya notifyAll() yordamları sayesinde sona erer. ()<br />

wait (long zamanAsimi): O andaki iĢ parçacığının (thread), belirtilen süre kadar<br />

beklemesini sağlar (zamanAsimi); bu bekleme notify() veya notifyAll() yordamları<br />

sayesinde de sona erdirilebilir. ()<br />

wait (long zamanAsimi, int nanos): O andaki iĢ parçacığının (thread),<br />

belirtilen gerçek süre kadar (zamanAsimi+ nanos) beklemesini sağlar; bu bekleme<br />

notify() veya notifyAll() yordamları sayesinde de sona erdirilebilir. nanos<br />

parametresi 0-999999 arasında olmalıdır. ()<br />

Kısacası, oluĢturulan her yeni sınıf, yukarıdaki, yordamlara otomatik olarak sahip olur. Bu yordamları yeni<br />

oluĢan sınıfların içerisinde tekrardan istediğimiz gibi yazabiliriz (uygun olan yordamları iptal edebilirizoverride).<br />

Örneğin finalize() yordamı kendi sınıfımızın içerisinde farklı sorumluluklar verebiliriz<br />

(çizgi çizen bir nesnenin, bellekten silinirken çizdiği çizgileri temizlemesi gibi). Bu olaya, ana sınıfın<br />

yordamlarını iptal etmek (override) denir. Biraz sonra iptal etmek (override) konusunu daha detaylı bir<br />

Ģekilde incelenecektir. ()<br />

Akıllara Ģöyle bir soru gelebilir, Kaplan sınıfı hem Kedi sınıfından hem de Object sınıfından mı türemiĢtir?<br />

Cevap hayır. <strong>Java</strong> programlama dilinde çoklu kalıtım (multiple inheritance) yoktur. AĢağıdan yukarıya<br />

doğru gidersek, Kaplan sınıfı Kedi sınıfından türemiĢtir, Kedi sınıfa da Object sınıfından (gizli ve otomatik<br />

olarak) türemiĢtir. Sonuçta Kaplan sınıfı hem Kedi sınıfının hem de Object sınıfına ait özellikler<br />

taĢıyacaktır. AĢağıdaki Ģeklimizde görüldüğü üzere her sınıf sadece tek bir sınıftan türetilmiĢtir. Object<br />

sınıfı, <strong>Java</strong> programlama dilinde, sınıf hiyerarĢinin en tepesinde bulunur. ()<br />

117

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!