Video: Inky Pramud_video pembelajaran class, objek, atribut dan method pada bahasa pemrograman Java 2024
Apabila anda mula bekerja dengan objek di Java, anda mendapati bahawa anda boleh menggunakan == dan! = untuk membandingkan objek dengan satu sama lain. Contohnya, butang yang anda lihat pada skrin komputer adalah objek. Anda boleh bertanya sama ada perkara yang hanya dikesan oleh tetikus adalah butang tertentu pada skrin anda. Anda melakukan ini dengan pengendali kesamaan Java.
jika (e. GetSource () == bCopy) {clipboard. setText (yang. getText ());
The gotcha besar dengan skema perbandingan Jawa datang apabila anda membandingkan dua rentetan. Apabila anda membandingkan dua tali dengan satu sama lain, anda tidak mahu menggunakan tanda dua kali ganda. Menggunakan tanda yang sama dua kali akan bertanya, "Adakah rentetan ini disimpan di tempat yang sama dalam ingatan sebagai rentetan yang lain? "Biasanya, itu bukan apa yang anda mahu tanya.
Sebaliknya, anda biasanya ingin bertanya, "Adakah rentetan ini mempunyai aksara yang sama di dalamnya sebagai rentetan yang lain? "Untuk bertanya soalan kedua (soalan yang lebih sesuai) jenis String Java mempunyai kaedah bernama sama. (Seperti segala-galanya di alam semesta yang diketahui, kaedah ini adalah sama dengan kaedah di Java API, pendek untuk Interface Pemrograman Aplikasi.)
Kaedah yang sama membandingkan dua rentetan untuk melihat sama ada mereka mempunyai aksara yang sama di dalamnya. Untuk contoh menggunakan kaedah sama dengan Java, lihat senarai kod ini. (Angka itu menunjukkan larian program dalam penyenaraian.)
import java statik. lang. Sistem. *; import java. util. Pengimbas; public CheckPassword {public static void main (String args []) {out. cetak ("Apa kata laluan?"); Papan kekunci pengimbas = Pengimbas baru (dalam); Kata laluan rentetan = papan kekunci. seterusnya (); keluar. println ("Anda menaip >>" + kata laluan + "<<"); keluar. println (); jika (kata laluan == "swordfish") {keluar. cetak ("Perkataan yang anda taip disimpan"); keluar. println ("di tempat yang sama dengan sebenar"); keluar. println ("kata laluan anda mesti menjadi"); keluar. println ("penggodam.");} else {out. println ("Perkataan yang anda taip tidak"); keluar. println ("disimpan di tempat yang sama seperti"); keluar. println ("kata laluan sebenar, tetapi itu"); keluar. println ("tidak ada masalah besar.");} keluar. println (); jika (kata laluan sama dengan ("swordfish")) {keluar. println ("Perkataan yang anda taipkan mempunyai"); keluar. println ("aksara yang sama dengan sebenar"); keluar. println ("kata laluan anda boleh menggunakan kami"); keluar. println ("sistem berharga.");} else {out. println ("Perkataan yang anda taip tidak"); keluar. println ("mempunyai aksara yang sama seperti"); keluar. println ("kata laluan sebenar anda tidak boleh"); keluar. cetak ("gunakan sistem kami yang berharga.");} papan kekunci. tutup ();}}
Dalam penyenaraian, papan kekunci panggilan. seterusnya () mengambil apa-apa perkataan jenis pengguna pada papan kekunci komputer. Kod ini menyebarkan perkataan ini ke dalam pembolehubah bernama kata laluan. Kemudian program jika pernyataan menggunakan dua teknik yang berbeza untuk membandingkan kata laluan dengan "ikan todak".
Contoh-contoh dalam buku cetak kebanyakannya berasaskan teks, tetapi anda boleh mencari versi yang paling menarik dari kebanyakan contoh di laman web Dummies. Versi-versi pelukis ini mempunyai tingkap, butang, medan teks, dan unsur-unsur lain antara muka pengguna yang biasa (GUI).
Yang lebih sesuai dengan kedua teknik menggunakan kaedah sama dengan Java. Kaedah yang sama kelihatan lucu kerana apabila anda memanggilnya, anda meletakkan titik selepas satu rentetan dan meletakkan tali lain dalam kurungan. Tetapi itulah cara yang anda perlu lakukan.
Dalam memanggil kaedah sama dengan Java, tidak kira rentetan mendapat titik dan yang membuat kurungan. Sebagai contoh, dalam penyenaraian, anda boleh menulis
jika ("swordfish" sama dengan kata laluan)
Kaedah ini akan berfungsi dengan baik.
Panggilan untuk kaedah sama dengan Java kelihatan tidak seimbang, tetapi tidak. Terdapat sebab di sebalik ketidakseimbangan antara titik dan kurungan. Ideanya ialah anda mempunyai dua objek: objek kata laluan dan objek "ikan todak".
Setiap satu daripada kedua objek ini adalah jenis String. (Walau bagaimanapun, kata laluan adalah pemboleh ubah jenis String, dan "swordfish" adalah String literal.) Apabila anda menulis kata laluan. sama dengan ("ikan todak"), anda memanggil satu kaedah yang sama dengan objek kata laluan. Apabila anda memanggil kaedah itu, anda memberi makan "swordfish" kepada kaedah sebagai parameter kaedah (pun dimaksudkan).
Apabila membandingkan strings dengan satu sama lain, gunakan kaedah sama - bukan tanda sama dua kali.