Rumah >Java >javaTutorial >Mengapakah Java `Object.toString()` Termasuk Kod Hash?

Mengapakah Java `Object.toString()` Termasuk Kod Hash?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-25 09:47:29607semak imbas

Why Does Java's `Object.toString()` Include the Hashcode?

Membuka Hashcode dalam Object.toString(): Tujuan Praktikal

Apabila mencetak perwakilan objek menggunakan Object.toString() lalai kaedah, anda akan sering menemui rentetan yang termasuk kod cincang objek. Ini menimbulkan persoalan: mengapa kod cincang ini hadir?

Sebabnya terletak pada tujuan asas kod cincang dalam bahasa pengaturcaraan Java. Di Java, kod cincang objek berfungsi sebagai pengecam unik yang membezakannya daripada objek lain. Walaupun tidak dijamin unik, objek yang sama umumnya mempunyai kod cincang yang sama.

Dengan memasukkan kod cincang dalam kaedah Object.toString(), pelaksanaan lalai menyediakan cara untuk membezakan antara objek, terutamanya dalam kes di mana ia nama kelas atau keadaan adalah sama. Ini amat berguna untuk mesej ralat dan tujuan penyahpepijatan, kerana ia membolehkan anda mengenal pasti objek khusus yang dirujuk dengan mudah.

Untuk menggambarkan perkara ini, pertimbangkan dua contoh objek dalam kelas yang sama, Anjing dan Kucing, setiap satu dengan yang sama nama "Buddy." Menggunakan Object.toString(), kita boleh membezakan antara objek ini dengan kod cincangnya:

Dog dog = new Dog("Buddy");
Cat cat = new Cat("Buddy");

System.out.println(dog.toString()); // Output: Dog@1a0e31
System.out.println(cat.toString()); // Output: Cat@45ab2c

Dalam contoh ini, kod cincang "1a0e31" dan "45ab2c" membolehkan kami mengenal pasti objek Anjing dan Kucing secara berasingan, walaupun nama mereka sama.

Oleh itu, kehadiran kod cincang dalam Object.toString() berfungsi untuk tujuan praktikal, membolehkan pembangun membezakan antara contoh objek yang berbeza, walaupun apabila nama dan keadaan kelas mereka tidak dapat dibezakan.

Atas ialah kandungan terperinci Mengapakah Java `Object.toString()` Termasuk Kod Hash?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn