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.

gunEkle() yordamı sayesinde parametre olarak gönderdiğimiz değer, global olan temel int tipindeki<br />

gun alanının değerini arttırmaktadır.<br />

Nesnelere ait global alanlar, içinde bulundukları nesnelere ait alanlardır ve nesne içerisindeki her statik<br />

olmayan yordam tarafından doğrudan eriĢilebilirler. Yerel değiĢkenler ise yordamların içerisinde<br />

tanımlanırlar; ve, ancak tanımlandığı yordam içerisinde geçerlidir.<br />

gunEkle() yordamına dikkat edilirse, gun ismini hem TarihHesaplama nesnesine ait global bir alanının<br />

adı olarak hem de yerel değiĢken adı olarak kullanıldığı görülür. Burada herhangi bir yanlıĢlık yoktur.<br />

Çünkü bunlardan biri nesneye ait bir alan, diğeri ise gunEkle() yordamına ait yerel değiĢkendir. Bizim<br />

gönderdiğimiz değer, gunEkle() yordamının yerel değiĢkeni sayesinde TarihHesaplama nesnesinin<br />

global olan alanına eklenmektedir. En sonunda gunuEkranaBas() yordamı ile global olan gun alanının<br />

değerini görebilmekteyiz.<br />

Özet olarak, gunEkle() yordamının içerisinde kullandığımız this.gun ifadesiyle TarihHesaplama<br />

nesnesinin global olan gun alanına eriĢebilmekteyiz. Uygulamanın sonucu aĢağıdaki gibi olur:<br />

Gun = 5<br />

Peki, gunEkle() yordamının içerisinde this.gun ifadesi yerine sadece gun ifadesi kullanılsaydı<br />

sonuç nasıl değiĢirdi?<br />

Örnek-3.9: TarihHesaplama2.java<br />

public class TarihHesaplama2 {<br />

int gun, ay, yil;<br />

public void gunEkle(int gun) {<br />

gun += gun ;<br />

}<br />

public void gunuEkranaBas() {<br />

System.out.println("Gun = " + gun);<br />

}<br />

}<br />

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

TarihHesaplama2 th = new TarihHesaplama2();<br />

th.gunEkle(2);<br />

th.gunEkle(3);<br />

th.gunuEkranaBas();<br />

}<br />

Uygulamanın çıktısı aĢağıdaki gibi olur:.<br />

Gun = 0<br />

TarihHesaplama nesnesine ait olan global gun alanına herhangi bir değer ulaĢmadığı için sonuç sıfır<br />

olacaktır.<br />

Yordam Çağrımlarımda this Kullanımı<br />

Gösterim-3.4:<br />

class Uzum {<br />

56

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

Saved successfully!

Ooh no, something went wrong!