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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}<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!