Şimdi Ara

soru :

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
121
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • neden if yapısında koşula yazarken (String'te) == operatörünü kullanamıyoruz da onun yerine değişkenismi.equals("String") ifadesi kullanmak zorunda kalıyoruz ?



  • Bu sanirim Java ile alakali bir durumdu. Python'da ve baska cogu dilde stringleri == ile karsilastirabilirsin.

    Java'da bir string yarattigin zaman aslinda ayni zamanda tumuyle yeni bir obje yaratmis oluyorsun. Objenin kendi parent class'i, kendine ait RAM'de yeri ve bilimum daha farkli propertyleri oluyor. String'in sahip oldugu yazi katari da bu ozelliklerden bir tanesi.

    Java'daki == operatoru iki degeri karsilastirirken iki objenin de tamamina bakiyor (atomic veri yapilarindan bir tanesi degilse, int char bool gibi). Eger tamamen aynilarsa True degeri donduruyor. Yani, Java'da stringlerin == operatorune gore "esit" olmasinin tek yolu RAM'deki adreslerine kadar aslinda ayni obje olmalari. Yani aslinda ayni sey olmalari. Baska da yolu yok. Onun icin de string sinifina .equals() diye bir metot eklemisler, ki bu metot stringlerin sadece "icerigine" goz atip ona gore true/false donduren bir metot.

    Bir televizyon class'in olsun, o classten 2 tane televizyon objesi turettigini dusun. Iki tane ayri televizyon var elinde yani. Bu durumda televizyon1 televizyon2'ye esit olur mu? Olmaz. Ikisi ayri ayri seyler oldular sen onlari yarattiktan sonra. Ama televizyon1 == televizyon1 dersen, o true doner. Ha ne diyebilirsin, bir metot olusturup icine "benim icin televizyonlarin ayni olma kosulu icindeki parcalarin modelinin ayni olmasidir", ondan sonra televizyon1.equals(televizyon2) dersin. Bakar ki parcalar ayni, sonucta ayni classten cikma 2 obje. True dondurur. Stringteki olay da aynisi.



    < Bu mesaj bu kişi tarafından değiştirildi KaramazovX -- 13 Ocak 2017; 10:54:59 >




  • çok güzel bir cevap sağ olasın
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.