Fungsi sama dengan telah didefinisikan dalam objek kelas dasar. Kode sumbernya adalah sebagai berikut
Copy kode kodenya sebagai berikut:
boolean publik sama dengan(Obj objek) {
kembali (ini == keberatan);
}
Dapat dilihat dari kode sumber bahwa metode default sama dengan() konsisten dengan "==". Ini adalah referensi ke objek yang dibandingkan, bukan nilai objek (ini konsisten dengan akal sehat kita bahwa sama dengan() adalah digunakan untuk membandingkan objek. Alasannya adalah sebagian besar kelas di Java telah mengganti metode sama dengan(). Berikut adalah contoh dari kelas String. Kode sumber dari metode sama dengan() kelas String adalah sebagai berikut:)
[Jawa]
Copy kode kodenya sebagai berikut:
/** Nilai digunakan untuk penyimpanan karakter.
nilai karakter akhir pribadi[];
/** Offset adalah indeks pertama dari penyimpanan yang digunakan */
offset int akhir pribadi;
/** Hitungan adalah jumlah karakter dalam String */
jumlah int akhir pribadi;
[java] lihat salinan cetak biasa?
boolean publik sama dengan(Objek dan Objek) {
if (ini == suatu Objek) {
kembali benar;
}
if (sebuah instance objek dari String) {
String anotherString = (String)anObject;
int n = hitung;
if (n == anotherString.count) {
char v1[] = nilai;
char v2[] = anotherString.nilai;
int i = offset;
int j = string lain.offset;
sementara (n-- != 0) {
jika (v1[i++] != v2[j++])
kembali salah;
}
kembali benar;
}
} //www.software8.co
kembali salah;
}
Equals() dari kelas String sangat sederhana, ia hanya mengubah kelas String menjadi array karakter dan membandingkannya sedikit demi sedikit.
Singkatnya, saat menggunakan metode sama dengan() kita harus memperhatikan:
1. Karena sama dengan() diterapkan pada objek khusus, Anda harus mengganti metode sama dengan() sistem di kelas khusus.
2. Sedikit ilmu, masalah besar.