Video: Java ile OOP - Ders 26: Kalıtım/Miras (Inheritance) 2024
Java'daki nesnelerle çalışmaya başladığınızda, == ve! = nesneleri birbirleriyle karşılaştırmak için. Örneğin, bilgisayar ekranında gördüğünüz bir düğme bir nesnedir. Fareyle tıklanan şeyin ekranınızda belirli bir düğme olup olmadığını öğrenebilirsiniz. Bunu Java eşitlik operatörüyle yaparsınız.
if (e. GetSource () == bCopy) {panoya. setText (hangi.getText ());
İki dizeyi karşılaştırdığınızda, Java'nın karşılaştırma şemasında büyük sorun var. İki dizeyi birbiriyle karşılaştırdığınızda çift eşitlik işaretini kullanmak istemezsiniz. Çift eşitlik işaretini kullanarak, "Bu dize diğer dize gibi bellekte tam olarak aynı yerde saklanır mı? "Genellikle, sormak istediğiniz şey bu değil.
Bunun yerine, genelde "Bu dize diğer dize ile aynı karakterlere sahip mi?" "İkinci soruya (daha uygun soruyu sormak için) Java'nın String türünün eşit bir yöntemi var. (Bilinen evrendeki diğer her şey gibi, bu equals yöntemi, Java API'sinde, Uygulama Programlama Arayüzü için kısaca tanımlanmıştır.)
Eşitlik yöntemi, aynı karakterleri olup olmadığını görmek için iki dizeyi karşılaştırır. Java eşittir yöntemini kullanan bir örnek için bu kod listesine bakın. (Şekil, listede yer alan programın bir çalışmasını göstermektedir.)
import static java. Lang. Sistem. *; import java. util. Tarayıcı; genel sınıf CheckPassword {public static void main (Dizge args []) {out. yazdır ("Parola nedir?"); Tarayıcı klavye = yeni Tarayıcı (içinde); String parola = klavye. Sonraki(); dışarı. println ("Siz yazdınız >>" + şifre + "<<"); dışarı. println (); if (password == "kılıçbalığı") {out. println ("Yazdığınız kelime saklanır"); dışarı. println ("gerçekle aynı yerde"); dışarı. println ("şifre, a olmalısın"); dışarı. println ("hacker");} else {out. println ("Yazdığınız kelime değil"); dışarı. println ("aynı yerde saklanır"); dışarı. println ("gerçek şifre, fakat bu"); dışarı. println ("önemli değil");} çıkış. println (); if (password. equals ("kılıç balığı")) {out. println ("Yazdığınız kelimenin şudur:"); dışarı. println ("gerçeklerle aynı karakterler"); dışarı. println ("şifre, bizimkini kullanabilirsiniz"); dışarı. println ("değerli sistem.");} else {out. println ("Yazdığınız sözcük değil"); dışarı. println ("aynı karakterlere sahip"); dışarı. println ("gerçek şifre, yapamazsın"); dışarı. println ("değerli sistemimizi kullanın.");} klavye. close ();}}
Listede, klavye çağırın. next () kullanıcının bilgisayar klavyesinde yazdığı kelimeyi kapar. Kod, bu kelimeyi parola değişkenine çevirir. Sonra programın if ifadeleri şifreyi "kılıçbalığı" ile karşılaştırmak için iki farklı teknik kullanır.
Baskılı kitaptaki örnekler çoğunlukla metin tabanlıdır, ancak çoğu örnek örneğinin Dummies web sitesinde daha zengin sürümlerini bulabilirsiniz. Bu daha meraklı sürümlerin pencereleri, düğmeleri, metin alanları ve tipik grafik kullanıcı arayüzü (GUI) diğer öğeleri bulunur.
İki tekniğin daha uygun olması, Java eşittir yöntemini kullanır. Equals yöntemi komik görünüyor çünkü onu çağırdığınızda bir dizeden sonra bir nokta koyup diğer dizeyi parantez içine koyuyorsunuz. Ama bunu yapmanızın yolu buydu.
Java'nın equals yöntemini çağırırken hangi dizenin nokta aldığı ve parantezi alırken önemi yoktur. Örneğin, listede,
if ("kılıçbalığı". Eşittir (şifre))
yazmış olabilirsiniz. Yöntem de aynı şekilde işe yarar.
Java eşittir yöntemi çağrısı dengesiz görünüyor, ancak değil. Nokta ile parantez arasındaki açık dengesizliğin arkasında bir sebep var. Fikir, iki nesne bulundurmanızdır: parola nesnesi ve "kılıçbalığı" nesnesi.
Bu iki nesnenin her biri String türündedir. (Bununla birlikte, password, String türü bir değişkendir ve "kılıçbalığı", bir String deyimidir.) Parola yazarken. eşittir ("kılıçbalığı"), şifre nesnesine ait bir eşittir yöntemi çağırıyorsunuz demektir. Bu yöntemi çağırdığınızda, yöntemin parametresi olarak (kurnazlık amacıyla) "kılıç balığı" yı beslersiniz.
Dizeleri birbirleriyle karşılaştırırken çift eşitlik işaretini değil eşittir yöntemini kullanın.