Java'da equals
Eslesen kelimelerin true basmasi icin String metnini equals ile karsilastirin. Yard.java icinde String a = "red"; ve String b = "red"; yazin, sonra a.equals(b) yazdirin. String c = "blue"; ekleyip a.equals(c) yazdirin. javac Yard.java ile derleyin ve java Yard calistirin. Ekran once true, sonra false gostermelidir. Ikinci demo iki new String("red") nesnesi olusturur boylece == false basabilirken equals hâlâ true basar. Debuggingi bir sonraki sayfaya birakin — bu ders icerik eslesmesi ile nesne kimliginin karsitligidir.
equals ile metni eslestirin
Polymorphism sayfasi farkli horn govdelerini Machine tipindeki degiskenler uzerinden calistirdi. Bu sayfa metni karsilastirir. Yard.java dosyasini acin. Public sinif adini Yard tutun. String hikayesini gomuyorsa kalan Machine / Truck / Car demolari, kalan abstract doldurmalari, yol demolari ve herhangi bir klavye Scanner satirini silin. Program yazma beklememelidir. Bu demolar icin import satiri gerekmez.
Yard.main icinde uc string olusturun:
String a = "red";
String b = "red";
String c = "blue";
Karsilastirmalari yazdirin:
System.out.println(a.equals(b));
System.out.println(a.equals(c));
equals metodu karakterlere bakar. Ayni metin true dondurur. Farkli metin false dondurur.
public class Yard {
public static void main(String[] args) {
String a = "red";
String b = "red";
String c = "blue";
System.out.println(a.equals(b));
System.out.println(a.equals(c));
}
}
Yard.java dosyasinin bulundugu klasorden javac Yard.java calistirin. Parantezler, suslu parantezler ve noktali virguller uyusunca javac kendi satirini yazmaz. Sonra java Yard calistirin — java Yard.java degil. Calistirma komutundan .java uzantisini birakin. Dosyada tek public sinif tutun boylece ad Yard ile eslesir.
Ekran once true, sonra false gosterir. Calismayi bir kez adim adim izleyin. Java Yard.main ile baslar. a.equals(b) red ile red karsilastirir ve true basar. a.equals(c) red ile blue karsilastirir ve false basar. Siz a uzerinde bir metot cagirdiniz ve diger stringi arguman olarak verdiniz.
Hâlâ bir polymorphism dosyasindan tone / honk / beep goruyorsaniz equals ogretim dosyasina gecin ve java Yard komutunu yeniden calistirin. equals sonuclari yerine stringlerin kendisini yazdirirsaniz ekranda red ve blue gorursunuz — booleanin gorunmesi icin a.equals(b) ifadesini println icine sarin.
Ekrana bakarken kurali sesli soyleyin: equals metnin karakter karakter eslesip eslesmedigini sorar. Bu sayfada bir debugger penceresi uydurmayin. Debugging sonraki dersi bekler.
new String uzerinde == ile equals zitligi
Ikinci program new ile iki ayri String nesnesi olusturur. Ikisi de red metnini tutar. Program once a == b, sonra a.equals(b) yazdirir.
public class Yard {
public static void main(String[] args) {
String a = new String("red");
String b = new String("red");
System.out.println(a == b);
System.out.println(a.equals(b));
}
}
javac Yard.java ile derleyin, sonra java Yard calistirin. Ekran once false, sonra true gosterir. == kontrolu a ve b nin bellekde tam olarak ayni nesne olup olmadigini sorar. Iki new String("red") cagrisi iki nesne olusturur, bu yuzden == false basar. equals kontrolu hâlâ karakterlere bakar, bu yuzden true basar.
main icindeki iki satiri bir kez daha okuyun. Ilk satir: == ile kimlik. Ikinci satir: equals ile icerik. Bu ogretim sekli icin her iki yazdirmayi tutun boylece zitlik tek ekranda kalsin. Yalnizca == yazdirirsaniz bu sayfanin da ogrettigi icerik eslesmesini kacirirsiniz.
"red" gibi new olmadan atanan baslangic literallerinde Java ayni pooled nesneyi yeniden kullanabilir, bu yuzden == bazen yanlislikla true gorunebilir. Bu ikinci demo bilerek new String("red") kullanir boylece kimlik kontrolu acikca false kalirken icerik true kalir. Metne onem verdiginizde equals tercih edin.
Yakinlarda polymorphism demolari duruyorsa onlari tarih olarak tutun. Bu ders icin equals ogretim dosyasini calistirin boylece ekran boolean gosterir, horn kelimeleri degil. javac yinelenen public siniflardan sikayet ederse yalnizca Yard i public tutun.
Polymorphism cagrilariyla karsilastirma
Polymorphism sayfasinda bir metot adi ebeveyn tipindeki degiskenler uzerinden farkli govdeleri calistirdi. Bu sayfada bir metot adi — equals — iki stringin ayni metni tutup tutmadigini yanitlar ve == ayni nesne olup olmadiklarini yanitlar. Hâlâ Yard.java derler ve java Yard calistirirsiniz. Yeni tokenlar equals, boolean true / false yazdirmalari ve new String ile == zitligidir.
Hâlâ Machine t = new Truck() dosyasi aciksa horn cagrilari gorursunuz. main string olustursun ve karsilastirma sonuclarini yazdirsin diye equals dosyasina gecin. Debugging araci demolari bu sayfanin disinda tutun. Klavye girisini bu sayfanin disinda tutun.
Bu sayfa debugging icin ne birakir
Bu sayfa string icerigini karsilastirir ve metin icin == in neden yanlis varsayilan oldugunu gosterir. Sonraki sayfa debuggingi gosterir; orada ekrani ve kaynagi dikkatle okuyarak programin neden yanlis davrandigini bulursunuz. Burada equals ve == ile kalin. Henuz tam bir debugger walkthrough zorunlu degildir.
Sonra yanlis bir dali debug ederken basarisiz bir equals kontrolu yaygin bir nedendir. Bu sayfayi o komsu hikayenin karsilastirma yarisi olarak gorum. Debugging dersini acmadan once her iki Yard demosunu true / false ve false / true otomatik hissedilene kadar bitirin.
Debuggingden once
Eslesen red metninde a.equals(b) cagirip true gorebilir, sonra blue icin false gorebilirsiniz. Iki new String("red") nesnesi olusturup == in false, equals in true bastigini gorebilirsiniz. Tutulan her demo icin sirayla Yard.java derleyin ve java Yard calistirin. Icerik eslesmesi ile nesne kimligi ayrildi. Sonraki sayfa debuggingdir; hatalari ekran ve kaynak yan yana avlarsiniz.
Acik bir icerik kontrolu icin uc stringli equals demosunu tutun. Acik bir == zitligi icin new String demosunu tutun. Debugging dosyalarini bu sayfanin disinda tutun. Bu uc aliskanlik ilerlemeden onceki kontrol noktasidir. equals eslesen metin icin true bastiginda — ve == o metne sahip iki yeni nesne icin false bastiginda — bu ders isini yapmistir ve debugging hakkındaki sonraki konuya hazirsiniz.
Klasorden son bir gecis: bir public Yard, main icinde string karsilastirmalari, klavye beklemesi yok, zorla debugger yok. Acik tuttugunuz demoda bir kez daha javac Yard.java ve java Yard calistirin. Ekran hâlâ beklediginiz booleanlari basiyorsa karsilastirma hikayesi saglamdir ve kurs sonraki sayfada debugginge gecebilir.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek