Rabu, April 24, 2019

Object Class pada Java

Object Class ditampilkan dalam java.lang package. Setiap class dalam Java secara langsung ataupun tidak langsung derived dari object class. Jika class tidak extend dari class apapun maka secara langsung child class dari object dan jika extend ke class lainnya maka derived secara tidak langsung. Karena itu method class object tersedia untuk semua class Java. Karenanya object class bertindak sebagai akar dari hirarki inheritance dalam program Java apapun.

Menggunakan method object class

Terdapat beberapa method dalam class object:
satu, toString(): toString() menyediakan representasi String dari object dan digunakan untuk mengkonversi object ke String. Default toString() method 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. Dengan kata lain, 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 toString() method untuk mendapatkan representasi String dari sebuah objek untuk overriding lebih banyak dari toString() method.

Catatan: dimanapun dilakukan percobaan untuk mencetak object referensi, maka secara internal toString() method 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 objek, JVM generate sebuah angka unik yang merupakan sebuah hashcode yang return nilai integer berbeda untuk object yang berbeda. Sebuah kesalahan umum mengenai method ini adalah hashCode() return nilai adress dari object, dimana hal ini tidaklah benar. Method ini mengkonversi internal address dari object menjadi integer menggunakan algoritma tertentu. hashCode() method 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 hashCode() method: Nilai return hash digunakan untuk mencari object dalam sebuah koleksi (collection). JVM (Java Virtual Machine) 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 objek berbasis hash code adalah proses pencarian yang menjadi lebih mudah.

catatan: Overriding dari hashCode() method harus diselesaikan untuk setiap object yang di-generate dengan unique number. Contohnya, untuk class Student dapat return roll no. dari student yang berasal dari hashCode() method yang bernilai unique.

Output:
Student@64
Student@64

catatan: 4*16^0 + 6*16^1=100

tiga, equals(Object obj): Bandingkan nilai object yang dimiliki dengan nilai object dari 'this' (object dimana method tersebut dipanggil). Ini memberikan cara umum untuk membandingkan object secara setara. Cara ini direkomendasikan untuk overriding equals(Object obj) method untuk mendapatkan kesamaan kondisi dari object.

catatan: Secara umum sangat penting untuk melakukan overriding hashCode() dimanapun method this overriding, tujuannya untuk menjaga kontrak umum dari hashCode method, yang menyatakan bahwa object yang bernilai sama harus memiliki hash code yang bernilai sama pula.

empat, getClass(): Return dari class object yang berasal dari 'this' object dan digunakan untuk mendapat class runtime actual dari object. Hl ini juga bisa digunakan untuk mendapatkan metadata dari this class. Nilai return class object adalah object yang terkunci oleh static synchronized method dari class yang ditampilkan. Dan karena final maka tidak dapat dilakukan overriding.

Output:
Class of Object obj is : java.lang.String

catatan: Setelah loading sebuah file .class, 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 Repleksi.

lima, finalize() method: method ini dipanggil sesaat sebelum object menuju ke garbage collector. Method ini dipanggil oleh Garbage Collection dalam ketika garbage collector memutuskan bahwa tidak ada lagi nilai referensi dalam object tersebut. Dapat dilakukan overriding finalize() method untuk membuang sumber daya sistem, melakukan aktivitas cleanup, dan meminimalisasi kebocoran memori. Contohnya sebelum menghancurkan object Servlet web container, selalu dipanggil finalize method untuk melakukan aktivitas sesi clean up.

catatan: Method finalize dipanggil hanya sekali dalam object meskipun object adalah berhak mendapatkan garbage collection beberapa kali.

Output:
366712642
end
finalize method called

enam, clone(): mengembalikan nilai new object yang bernilai sama dengan object-nya. Untuk clone() method juga berkaitan dengan Clone().

tujuh, Tersisa tiga method wait(), notify(), dan notifyAll() yang berkaitan dengan kongruensi.





Related Posts

Object Class pada Java
Oleh

"semoga yang memberikan komentar diberikan berkah kebaikan dari Allah, dijauhkan dari kejahatan, dan diberikan pahala ilmu dan amal jariyah dari sepenggal kata yang ia tinggalkan amiin :) "