Object Class Java dan Fungsinya
- satu, toString(): menyediakan representasi String dari object dan digunakan untuk mengkonversi object ke String. Nilai default method toString() dari return object class sebuah String terdiri dari nama class yang merupakan instance dari object pada tanda '@' dan unsigned hexadecimal dari hash code dari object. Lebih jelas, toString dedefinisikan sebagai berikut:
/* Default behavior dari toString() untuk mencetak class name, kemudian @, kemudian hexadecimal representasi dari hash code dari sebuah object */
public String toString()
{return getClass().getName() + "@" + Integer.toHexString(hashCode());}
Salalu disarankan untuk overriding method toString() untuk mendapatkan representasi String dari sebuah object untuk overriding lebih banyak dari method toString().
Catatan: dimanapun dilakukan percobaan untuk mencetak object referensi, maka secara internal method toString() akan dipanggil.
Student s = new Student();
/* Berikut ini dua Statement yang bernilai sama */
System.out.println(s);
System.out.println(s.toString());
- dua, hashCode(): Untuk setiap object pada Java, maka JVM akan generate sebuah angka unik yang merupakan sebuah hashcode yang akan mengembalikan nilai integer berbeda untuk object yang berbeda. Sebuah kesalahan umum mengenai method ini adalah hashCode() akan mengembalikan nilai adress dari object, dimana hal ini tidaklah benar. Method ini akan mengkonversi internal address dari object dan mengubahnya menjadi integer menggunakan algoritma tertentu. Method hashCode() adalah native karena dalam Java sangat tidak mungkin untuk menemukan alamat dari sebuah object, sehingga digunakan bahasa seperti C/C++ untuk menemukan alamat dari object tersebut.
Kegunaan dari Method hashCode(): Nilai return hash digunakan untuk mencari object dalam sebuah koleksi pada Java. JVM menggunakan hashCode method ketika object disimpan ke dalam hashing yang berkaitan dengan struktur data seperti HashSet, HashMap, Hashtable, dan lain sebagainya. Keunggulan utama dari penyimpanan object berbasis hash code adalah proses pencarian yang menjadi lebih mudah.
Catatan: Overriding dari method hashCode() harus diselesaikan untuk setiap object yang di-generate dengan angka unik. Contoh, untuk class Student dapat return roll no. dari student yang berasal dari method hashCode() yang bernilai unik.
// Program Java
// mendemonstrasikan cara
// kerja dari hashCode() dan
// toString().
public class Student
{
static int last_roll = 100;
int roll_no;
/* Constructor */
Student(){
roll_no = last_roll;
last_roll++;}
/* Overriding hashCode() */
@Override
public int hashCode()
{return roll_no;}
/* Driver code */
public static void main(String args[]){
Student s = new Student();
// dua statement berikut ini
// bernilai sama.
System.out.println(s);
System.out.println(s.toString());}
}
Student@64
catatan: 4*16^0 + 6*16^1=100
- tiga, equals(Object obj): Bandingkan nilai object yang dimiliki dengan nilai object dari 'this' atau posisi object dimana method tersebut dipanggil. Ini memberikan cara umum untuk membandingkan object secara bernilai setara. Cara ini direkomendasikan untuk overriding method equals(Object obj) untuk mendapatkan kesamaan kondisi dari object.
catatan: Secara umum sangat penting untuk melakukan overriding hashCode() dimanapun method this overriding, tujuannya adalah untuk menjaga kontrak umum dari method hashCode, yang menyatakan bahwa object yang bernilai sama harus memiliki hash code yang bernilai sama pula.
- empat, getClass(): Return dari class object yang berasal dari object 'this' dan digunakan untuk mendapat class runtime actual dari object. Hl juga bisa digunakan untuk mendapatkan metadata dari class this. Nilai return class object adalah object yang terkunci oleh method static synchronized dari class yang ditampilkan. Dan karena final, maka tidak dapat dilakukan overriding.
// Program Java untuk
// mendemonstrasikan cara
// kerja getClass().
public class Test
{
public static void main(String[] args){
Object obj = new String("SusuKudaLiar");
Class c = obj.getClass();
System.out.println("Class"
+" dari Object obj adalah : "
+c.getName());}
}
catatan: Setelah loading sebuah file .class, maka JVM akan menciptakan object dari tipe java.lang.Class dalam area Heap. Object class ini dapat digunakan untuk mendapatkan informasi level class. Secara luas hal ini digunakan sebagai suatu Repleksi.
- lima, finalize() method: method ini dipanggil sesaat sebelum object menuju ke garbage collector. Method ini dipanggil oleh Garbage Collection bagian dalam ketika garbage collector memutuskan bahwa tidak ada lagi nilai referensi dalam object tersebut. Dapat dilakukan overriding method finalize() untuk membuang sumber daya sistem, melakukan aktivitas cleanup, dan meminimalisasi kebocoran memori. Contohnya sebelum menghancurkan object Servlet web container, selalu dipanggil method finalize untuk melakukan aktivitas sesi clean up.
Catatan: Method finalize dipanggil hanya sekali dalam object meskipun object tersebut berhak untuk mendapatkan garbage collection beberapa kali.
// Program Java
// mendemonstrasikan cara
// kerja finalize().
public class Test
{
public static void main(String[] args){
Test t = new Test();
System.out.println(t.hashCode());
t = null;
// Memanggil garbage collector
System.gc();
System.out.println("e.n.d");}
@Override
protected void finalize()
{System.out.println("Method"
+" finalisasi dipanggil");}
}
e.n.d
Method finalisasi dipanggil
- enam, clone(): mengembalikan nilai new object yang bernilai sama dengan object-nya. Untuk method clone() juga berkaitan dengan Clone().
- tujuh, tersisa tiga method wait(), notify(), dan notifyAll() yang berkaitan dengan kongruensi.
- Instance Variabel Hiding pada Java [klik]
- 2 Contoh Program Block Static pada Java [klik]
- Contoh Sederhana Block Inisialisasi pada Java [klik]
- 3 Konsep Utama Inisialisasi Block Instance pada Java [klik]
- 2 Konsep Utama Static vs Dynamic Binding pada Java [klik]
- 3 Alasan Kenapa Java Bukan Pemrograman Berorientasi Objek Murni [klik]
- 4 Contoh Program Java dan Multiple Inheritance [klik]
Object class adalah parent class dari semua class pada Java secara default. Dengan kata lain, object class adalah class Java yang paling atas. Contoh, method getObject() yang mengembalikan object tetapi bisa dari jenis apa pun seperti object karyawan, mahasiswa, dan lain sebagainya, user dapat menggunakan referensi class object untuk merujuk object tersebut.
BalasHapusApa yang dimaksud dengan kelas object pada bahasa pemrograman berorientasi object?
BalasHapusClass object mendefinisikan status dan behavior dasar yang harus dimiliki oleh semua object, seperti kemampuan untuk membandingkan diri sendiri dengan object lain, guna mengkonversinya menjadi bentuk string, menunggu variabel kondisi tertentu yang digunakan untuk memberitahukan object lain bahwa variabel kondisi telah dilakukan perubahan, dan mengembalikan class object.
HapusApa yang dimaksud dengan object pada Java?
BalasHapusObject memiliki status dan perilaku. Contoh: Seekor anjing memiliki suatu kondisi atau keadaan status seperti: warna, nama, ras. Dan perilaku yang dimiliki anjing seperti menggoyangkan ekor, mengonggong, dan makan.
HapusObject merupakan bentuk turunan dari sebuah class pada Java, dimana class dapat didefinsiikan sebagai suatu template atau cetak biru yang menggambarkan perilaku atau keadaan yang didukung oleh object jenisnya dalam bahasa pemrograman Java.