Mengkonversi casting obyek dari kelas Java
Cara Konversi (Casting) Obyek Dari Kelas Java
Ketika membuat program kompleks dengan bahasa pemrograman Java, Anda tidak akan terlepas dari proses untuk mengkonversi atau casting tipe data. Misalnya, Anda mengkonversi data dari tipe String ke tipe numerik tertentu, mengkonversi tipe numerik yang satu ke tipe numerik yang lain dan lain sebagainya.

Baca artikel Konversi Data String Ke Tipe-Tipe Numerik Di Java

Di Java, proses konversi tipe numerik dengan rentang nilai kecil ke tipe numerik dengan rentang nilai lebih besar disebut widening, sedangkan konversi sebaliknya, dari rentang nilai besar ke rentang nilai lebih kecil disebut narrowing. Widening dapat dilakukan secara otomatis oleh kompiler Java.

Di program Java, sebuah kelas dapat menjadi tipe variabel. Variabel yang dideklarasikan dengan tipe kelas disebut dengan variabel acuan yang mengacu ke obyek kelas tersebut. Anda tentu akan banyak menggunakan variabel acuan ini ketika membuat program grafis (GUI). Konversi juga berlaku untuk tipe kelas dengan mengubah tipe kelas satu ke tipe kelas lain.

Syarat konversi atau casting tipe kelas adalah harus berada di dalam hierarki turunan (inheritance hierarchy). Sebagai contoh di dalam hierarki turunan Object - BangunDatar - PersegiPanjang - Balok, kelas Object adalah superclass dari BangunDatar, kelas BangunDatar adalah superclass dari PersegiPanjang dan kelas PersegiPanjang adalah superclass dari Balok. Kelas Object mempunyai sifat paling umum sedangkan kelas Balok mempunyai sifat paling spesifik.

Baca artikel Memahami Metoda toString Dari Kelas Object Di Java

Polymorphism di Java membolehkan membuat obyek subclass untuk diberikan ke variabel acuan tipe superclass. Berikut ini adalah pernyataan membuat obyek kelas PersegiPanjang untuk diberikan ke variabel obj dengan tipe kelas Object:

Object obj = new PersegiPanjang();

Kelas PersegiPanjang adalah turunan kelas Object, sehingga acuan ke obyek kelas PersegiPanjang dapat diberikan ke variabel obj dengan tipe Object yang merupakan superclass. Sebaliknya, Anda tidak dibolehkan untuk memberikan acuan ke obyek kelas Object ke variabel pp yang merupakan tipe kelas PersegiPanjang sebagaimana pernyataan yang keliru atau salah berikut ini:

// Pernyataan yang keliru atau salah
PersegiPanjang pp = obj;

Saat dieksekusi, pernyataan tersebut menghasilkan error. Instance (obyek) dari subclass adalah juga instance superclass tetapi tidak sebaliknya. Sebagai contoh, setiap persegi panjang adalah Object, tetapi tidak setiap Object adalah persegi panjang, bisa saja lingkaran, segitiga, bujur sangkar atau yang lain. Agar kompiler Java mengetahui bahwa obj adalah obyek kelas PersegiPanjang, Anda perlu mengkonversi secara eksplisit sebagaimana pernyataan di bawah ini.

PersegiPanjang pp = (PersegiPanjang) obj;

Anda dibolehkan untuk mengkonversi obyek subclass ke variabel dengan tipe superclass (upcasting) kerena instance dari subclass adalah juga instance dari superclass. Ketika mengkonversi instance (obyek) superclass ke variabel dengan tipe subclass atau downcasting, Anda perlu untuk melakukan konversi secara eksplisit.

PRODUK TOKO GERZAL

Murah Fosi Audio SP601 Passive Bookshelf Speaker 2 Way 6.5 Inch Woofers Inch HiFi
Fosi Audio SP601 Passive Bookshelf Speaker 2 Way ...
Rp 4.607.800
Murah Fosi Audio BT20A MAX Power Amplifier HiFi Bluetooth Stereo PFFB Feedback
Fosi Audio BT20A MAX Power Amplifier HiFi Bluetooth ...
Rp 2.989.600
(5/5)
Murah Fosi Audio K7 Amplifier Headphone Hi-Fi Gaming DAC Bluetooth LCD Display
Fosi Audio K7 Amplifier Headphone Hi-Fi Gaming DAC ...
Rp 2.545.900
(5/5)
Murah Fosi Audio SW10 Active Speaker Subwoofer HiFi 10 Inch Driver Smart DSP 200W
Fosi Audio SW10 Active Speaker Subwoofer HiFi 10 Inch ...
Rp 4.623.300
(5/5)

Untuk daftar lengkap produk, kunjungi toko online kami, GERZAL, di marketplace Shopee, Tokopedia, dan TikTok Shop.
Harga produk di setiap marketplace berbeda-beda dan dapat berubah sewaktu-waktu.
Gunakan aplikasi saat berbelanja untuk mendapatkan potongan harga produk dan ongkos kirim, bahkan ongkos kirim gratis untuk wilayah tertentu.