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.

}<br />

public static void main(String args[]) {<br />

Sekreter s1 = new Sekreter();<br />

Sekreter s2 = new Sekreter();<br />

Sekreter s3 = new Sekreter();<br />

basla(s1,2); // sorunsuz<br />

basla(s1,1); // EOFException<br />

basla(s3,0); // FileNotFoundException<br />

}<br />

Bu örneğimizde Sekreter sınıfı Calisan sınıfından türemiĢtir. Ayrıca Sekreter sınıfının calis() yordamı,<br />

kendisinin ana sınıfı olan Calisan sınıfının calis() yordamını iptal etmiĢtir (override). Calisan sınıfına<br />

ait calis() yordamının fırlatacağı istisna daha kapsamlı olmasındaki sebep yukarı çevrimlerde<br />

(upcasting) sorun yaĢanmaması içindir. ġimdi basla() yordamına dikkat edelim. Bu yordam Calisan<br />

tipinde parametre kabul etmektedir; yani, main() yordamının içerisinde oluĢturulan Sekreter nesneleri<br />

basla() yordamına parametre olarak gönderilebilir çünkü arada kalıtım (inheritance) iliĢkisi vardır. ()<br />

Şekil-8.6. İptal etme (override) ve İstisnalar<br />

Fakat bu gönderilme esnasında bir daralma (yukarı çevirim) söz konusudur, Sekreter nesneleri heap<br />

alanında dururken onlara bağlı olan referansların tipi Calisan tipindedir. Burada bir ayrıntı saklıdır, bu<br />

ayrıntı Ģöyledir: c.calis() komutu çağrıldığı zaman Calisan sınıfının basla() yordamına ait etiketin<br />

altında Sekreter sınıfında tanımlı olan basla() yordamına ait kodlar çalıĢtırılır. Bu uygulamamızda<br />

kullanılan etiket aĢağıdadır. ()<br />

Gösterim-8.12:<br />

public void calis(int deger) throws IOException { //<br />

etiket<br />

ÇalıĢtırılacak gövde aĢağıdadır.<br />

Gösterim-8.13:<br />

System.out.println("Calisan calisiyor "+ deger);<br />

if(deger == 0) {<br />

throw new FileNotFoundException("Dosyayi<br />

bulamadim");<br />

245

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

Saved successfully!

Ooh no, something went wrong!