Semua metode kelas Objek, ditambah lagi pada metode toString() - 1

"Hai, Amigo!"

"Hai!"

"Hari ini kita akan mempelajari kelas Object.
Anda telah menemukannya, dan Anda tahu bahwa Object adalah kelas dasar untuk semua kelas. Praktis tidak ada data, tetapi memiliki beberapa metode."

"Mengapa membutuhkan metode? Apakah ada yang benar-benar membuat instance dari kelas Object?"

"Lihatlah seperti ini: metode di kelas Object adalah umum di semua kelas. Dengan kata lain, pembuat Java mengidentifikasi beberapa metode yang, menurut pendapat mereka, harus dimiliki setiap kelas dan menambahkannya ke kelas Object."

"Dan ketika dikombinasikan dengan polimorfisme (kemampuan untuk mengesampingkan metode kelas Object di kelas turunan), ini menjadi alat yang sangat ampuh."

"Mari kita lihat apa metode ini:"

metode Keterangan
public String toString()
Mengembalikan representasi string dari objek.
public native int hashCode()
public boolean equals(Object obj)
Sepasang metode yang digunakan untuk membandingkan objek.
public final native Class getClass()
Mengembalikan objek khusus yang menjelaskan kelas saat ini.
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()
Metode untuk mengontrol akses ke objek dari utas berbeda. Untuk sinkronisasi benang.
protected void finalize()
Metode ini memungkinkan Anda melepaskan sumber daya non-Java asli: menutup file, streaming, dll.
protected native Object clone()
Metode ini memungkinkan Anda mengkloning objek: membuat duplikat objek.

"Metode ini dapat dibagi menjadi 6 kelompok. Anda sudah terbiasa dengan beberapa di antaranya, dan sisanya akan kita kenali di pelajaran berikutnya."

"Untuk beberapa alasan, saya tidak melihat sesuatu yang berguna di sini."

"Amigo! Jika metode ini tidak penting, mereka tidak akan menambahkannya ke setiap objek! Jadi, saya akan menyarankan Anda untuk melihat lebih dekat apa ini dan mengapa mereka diperlukan. Jika mereka tampaknya tidak penting bagi Anda , maka Anda tidak memahami sesuatu atau tidak memahami sesuatu dengan benar."

"Oke. Aku akan mendengarkan baik-baik."

"Mari kita mulai dengan metode toString().

"Metode ini memungkinkan Anda mendapatkan deskripsi teks dari objek apa pun. Implementasinya di kelas Object sangat sederhana:"

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

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

java.lang.Object@12F456

"Dan apa gunanya deskripsi seperti itu?"

"Deskripsi ini memungkinkan Anda mengetahui kelas objek yang metodenya dipanggil. Anda juga dapat membedakan antara objek; objek yang berbeda akan memiliki digit yang berbeda setelah simbol @."

"Tapi nilai sebenarnya dari metode ini ada di tempat lain. Metode ini dapat ditimpa di kelas mana pun untuk mengembalikan deskripsi objek yang lebih detail atau cocok."

"Tapi masih ada lagi. Karena Anda bisa mendapatkan representasi teks dari setiap objek, Java memungkinkan Anda mengimplementasikan dukungan untuk 'menambahkan' String ke objek.
Coba lihat:"

Kode Apa yang sebenarnya terjadi
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 secara teratur. Terutama ketika saya sedang menulis program atau mencari bug. Operasi ini berguna."