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 />

}<br />

Yukarıdaki örnekte, HesapMakinesi sınıfı içerisinde tanımlanan ve friendly eriĢim belirleyicisi olan<br />

hesapla() yordamı, türeyen alt sınıf içerisinde iptal edilmiĢtir (override). Bu doğrudur; çünkü,<br />

protected eriĢim belirleyicisi, friendly eriĢim belirleyicisine göre daha eriĢilebilirdir. Fakat, bu 2<br />

sınıf farklı paketlerde olsalardı -ki Ģu an varsayılan paketin içerisindeler- Bilgisayar sınıfı, HesapMakinesi<br />

sınıfına eriĢemeyeceğinden dolayı (çünkü HesapMakinesi sınıfı friendly eriĢim belirleyicisine sahip)<br />

kalıtım kavramı söz konusu bile olmazdı. ()<br />

5.4.1. Sanki İptal Ettim Ama...<br />

ġimdi farklı paketler içerisindeki sınıflar için iptal etmek kavramını nasıl yanlıĢ kullanılabileceği konusunu<br />

inceleyelim. Öncelikle HesapMakinesi ve Bilgisayar sınıflarını public sınıf yapıp ayrı ayrı dosyalara<br />

kayıt edelim ve bunları farklı paketlerin altına kopyalayalım. ()<br />

Ġki ayrı sınıfı farklı paketlere kopyaladık, özellikle HesapMakinesi sınıfını public sınıf yapmalıyız, yoksa<br />

değiĢik paketlerdeki sınıflar tarafından eriĢilemez, dolayısıyla kendisinden türetilme yapılamaz. ()<br />

HesapMakinesi sınıfını tr.edu.kou.math, Bilgisayar sınıfını ise tr.edu.kou.util paketinin içerisine<br />

yerleĢtirelim; ()<br />

Örnek-5.14: HesapMakinesi.java ()<br />

package tr.edu.kou.math;<br />

public class HesapMakinesi {<br />

void hesapla(double a , double b) {<br />

System.out.println("HesapMakinesi.hesapla()");<br />

}<br />

}<br />

Örnek-5.15: Bilgisayar.java ()<br />

package tr.edu.kou.util;<br />

import tr.edu.kou.math.* ;<br />

public class Bilgisayar extends HesapMakinesi {<br />

protected void hesapla(double a , double b) {<br />

// dikkat<br />

System.out.println("HesapMakinesi.hesapla()");<br />

}<br />

}<br />

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

Bilgisayar b = new Bilgisayar();<br />

b.hesapla(3.15, 5.6);<br />

HesapMakinesi hm = new HesapMakinesi();<br />

// hm.hesapla(3.15, 5.6); !Hata! baĢka paket içerisinden<br />

// eriĢilemez<br />

}<br />

ġu ana kadar yapılanların kuĢ bakıĢı görüntüsü aĢağıdaki gibi olur:<br />

126

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

Saved successfully!

Ooh no, something went wrong!