Semua kaedah kelas Objek, ditambah lagi dengan kaedah toString() - 1

"Hai, Amigo!"

"Hai!"

"Hari ini kita akan mengkaji kelas Object.
Anda telah pun menemuinya dan anda tahu bahawa Object ialah kelas asas untuk semua kelas. Ia boleh dikatakan tiada data, tetapi ia mempunyai beberapa kaedah."

"Mengapa ia memerlukan kaedah? Adakah sesiapa benar-benar mencipta contoh kelas Objek?"

"Lihat dengan cara ini: kaedah dalam kelas Objek adalah biasa di semua kelas. Dalam erti kata lain, pencipta Java mengenal pasti beberapa kaedah yang, pada pendapat mereka, setiap kelas harus ada dan menambahkannya pada kelas Objek."

"Dan apabila digabungkan dengan polimorfisme (keupayaan untuk mengatasi kaedah kelas Objek dalam kelas terbitan), ini menjadi alat yang sangat berkuasa."

"Mari kita lihat apakah kaedah ini:"

Kaedah Penerangan
public String toString()
Mengembalikan perwakilan rentetan objek.
public native int hashCode()
public boolean equals(Object obj)
Sepasang kaedah yang digunakan untuk membandingkan objek.
public final native Class getClass()
Mengembalikan objek khas yang menerangkan kelas semasa.
public final native void notify()
public final native void notifyAll()
public final native void wait(long timeout)
public final void wait(long timeout, intnanos)
public final void wait()
Kaedah untuk mengawal akses kepada objek daripada benang yang berbeza. Untuk penyegerakan benang.
protected void finalize()
Kaedah ini membolehkan anda mengeluarkan sumber asli bukan Java: menutup fail, strim, dsb.
protected native Object clone()
Kaedah ini membolehkan anda mengklon objek: mencipta pendua objek.

"Kaedah ini boleh dibahagikan kepada 6 kumpulan. Anda sudah biasa dengan sebahagian daripada mereka, dan kami akan berkenalan dengan yang lain dalam pelajaran seterusnya."

"Atas sebab tertentu, saya tidak nampak apa-apa yang berguna di sini."

"Amigo! Jika kaedah ini tidak penting, mereka tidak akan menambahkannya pada setiap objek! Jadi, saya akan menasihati anda untuk melihat dengan lebih dekat apakah ini dan mengapa ia diperlukan. Jika ia kelihatan tidak penting kepada anda , maka anda sama ada tidak memahami sesuatu atau tidak memahami sesuatu dengan betul."

"OK. Saya akan dengar baik-baik."

"Mari kita mulakan dengan kaedah toString().

"Kaedah ini membolehkan anda mendapatkan penerangan teks bagi sebarang objek. Pelaksanaannya dalam kelas Objek adalah sangat mudah:"

return getClass().getName() + "@" + Integer.toHexString(hashCode());

"getClass() dan hashCode() juga merupakan kaedah kelas Objek.
Memanggil kaedah ini biasanya menghasilkan hasil seperti ini:"

java.lang.Object@12F456

"Dan apa gunanya penerangan seperti itu?"

"Penerangan ini membolehkan anda mengetahui kelas objek yang kaedah dipanggil. Anda juga boleh membezakan antara objek; objek yang berbeza akan mempunyai digit yang berbeza selepas simbol @."

"Tetapi nilai sebenar kaedah ini terletak di tempat lain. Kaedah ini boleh ditimpa dalam mana-mana kelas untuk mengembalikan penerangan objek yang lebih terperinci atau sesuai."

"Tetapi terdapat lebih banyak lagi. Kerana anda boleh mendapatkan perwakilan teks bagi setiap objek, Java membolehkan anda melaksanakan sokongan untuk 'menambah' Rentetan pada objek.
Semak:"

Kod Apa sebenarnya yang berlaku
int age = 18;
System.out.println("Age is " + age);

String s = String.valueOf(18);
String result = "Age is " + s;
System.out.println(result);
Student st = new Student("Vincent");
System.out.println("Student is " + st);

Student st = new Student("Vincent");
String result = "Student is " + st.toString();
System.out.println(result);
Car car = new Porsche();
System.out.println("My car is " + car);

Car car = new Porsche();
String result = "My car is " + car.toString();
System.out.println(result);

"Ya, saya menggunakan ini dengan kerap. Terutama apabila saya menulis program atau mencari pepijat. Ia adalah operasi yang berguna."