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.

Örnek: Denklik.java ()<br />

public class Denklik {<br />

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

{<br />

Integer a1 = new Integer(47);<br />

Integer a2 = new Integer(47);<br />

}<br />

}<br />

System.out.println(a1 == a2);<br />

System.out.println(a1 != a2);<br />

Önce Integer sınıfı tipinde olan n1 ve n2 referansları, içlerinde 47 sayısını tutan Integer nesnelerine bağlı<br />

durumdadırlar. Uygulamanın sonucu olarak aĢağıdaki gibi değerler bekliyor olabiliriz...<br />

True<br />

False<br />

Ancak ne yazık ki, sonuç yukarıdaki gibi değildir! Nedeni ise, elimizde iki adet farklı Integer nesnesi<br />

bulunmaktadır. Bu nesnelerin taĢıdıkları değerler birbirlerine eĢittir; ancak, a1==a2 ifadesi kullanılarak Ģu<br />

denilmiĢ oldu ―a1 ve a2 referanslarının iĢaret etmiĢ oldukları nesneler aynı mı?‖ Yanıt tahmin edilebileceği<br />

gibi hayırdır. Yani, false‘dur. a1 ve a2 ayrı Integer nesnelerini iĢaret etmektedirler; eĢit olan tek Ģey, bu iki<br />

ayrı nesnenin tuttukları değerin 47 olmasıdır (-ki bu eĢitliği a1=a2 ifadesi ile yakalayamayız).<br />

Programımızın çıktısı aĢağıdaki gibidir.<br />

False<br />

True<br />

Peki, verilen örnekteki Integer nesneleri yerine temel tip olan int tipi kullanılsaydı sonuç ne olurdu? ()<br />

Örnek: IntIcinDenklik.java<br />

public class IntIcinDenklik {<br />

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

}<br />

}<br />

int s1 = 47;<br />

int s2 = 47;<br />

System.out.println(s1 == s2);<br />

System.out.println(s1 != s2);<br />

Bu uygulamanın sonucu aĢağıdaki gibi olur:<br />

True<br />

False<br />

36

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

Saved successfully!

Ooh no, something went wrong!