Grafik perbandingan:
Dasar untuk Perbandingan | Tipe Casting | Jenis Konversi |
---|---|---|
Berarti | Satu tipe data ditugaskan ke yang lain oleh pengguna, menggunakan operator cor maka itu disebut "Tipe Casting". | Konversi dari satu tipe data ke yang lain secara otomatis oleh kompiler disebut "Jenis Konversi". |
Terapan | Tipe casting juga dapat diterapkan pada dua tipe data 'tidak kompatibel'. | Konversi tipe hanya dapat diimplementasikan ketika dua tipe data 'kompatibel'. |
Operator | Untuk casting tipe data ke yang lain, operator casting '()' diperlukan. | Tidak diperlukan operator. |
Ukuran Tipe Data | Jenis tujuan bisa lebih kecil dari jenis sumber. | Di sini tipe tujuan harus lebih besar dari tipe sumber. |
Diimplementasikan | Hal ini dilakukan selama perancangan program. | Ini dilakukan secara eksplisit saat kompilasi. |
Jenis konversi | Persempit konversi. | Konversi pelebaran. |
Contoh | int a; byte b; ... ... b = (byte) a; | int a = 3; mengapung b; b = a; // nilai dalam b = 3.000. |
Definisi Pengecoran Tipe
Tipe casting dapat didefinisikan sebagai, casting dari satu tipe data ke tipe data lain, oleh programmer, pada saat desain program. Konversi otomatis dari satu tipe data ke yang lain, tidak mungkin setiap saat. Mungkin kondisi 'tipe tujuan' lebih kecil dari 'tipe sumber' sehingga, programmer harus secara eksplisit melemparkan tipe data yang lebih besar ke tipe data yang lebih kecil menggunakan operator casting '()'. Karena tipe data yang lebih besar dimodulasi ke tipe data yang lebih kecil, ini juga disebut 'penyempitan konversi'.
destination_type = (target_type) variabel / nilai // tipe target adalah tipe di mana Anda ingin mengonversi tipe sumber itu selalu tipe tujuan.
Mari kita pahami dengan sebuah contoh. Anda ingin mengonversi tipe data 'int' ke 'byte', sekarang, karena 'byte' lebih kecil dari 'int', konversi tipe tidak diperbolehkan. Di sini, kami harus secara implisit mengubah 'int' menjadi 'byte' dengan menggunakan operator casting '()'. Karena 'int' lebih besar dari 'byte', ukuran 'int' akan dikurangi menjadi kisaran “int mod byte”.
int a; byte b; ... ... b = (byte) a;
Ketika 'float' dikonversi menjadi 'int', ukuran float akan terpotong, karena 'int' tidak menyimpan nilai fraksional. Jika ukuran tipe tujuan terlalu kecil untuk dapat ditampung oleh jenis sumber, maka jenis sumber adalah 'rentang' tipe tujuan modulo. Casting juga dapat diterapkan ketika tipe data kompatibel, itu adalah praktik yang baik untuk menggunakan casting tipe di mana konversi tipe diperlukan.
Definisi Konversi Jenis
Konversi tipe adalah konversi otomatis dari satu tipe data ke yang lain setiap kali diperlukan, dilakukan secara eksplisit oleh kompiler. Tetapi ada dua kondisi yang harus dipenuhi sebelum konversi jenis.
- Jenis sumber dan tujuan harus kompatibel.
- Jenis tujuan harus lebih besar dari jenis sumber.
Kedua kondisi ini harus memenuhi untuk mencapai konversi jenis, dan konversi jenis ini disebut 'pelebaran konversi', karena jenis yang lebih kecil dikonversi ke jenis yang lebih besar, pelebaran jenis terjadi. Untuk konversi pelebaran ini, tipe numerik sebagai 'int', 'float' kompatibel satu sama lain sementara numerik ke char dan boolean atau char to boolean juga tidak kompatibel.
Contoh ini akan memberikan pandangan yang lebih baik tentang ini
int a = 3; mengapung b; b = a; // nilai dalam b = 3.000.
Di sini, 'int' dikonversi menjadi 'float' yang lebih besar dari 'int', sehingga terjadi pelebaran jenis sumber. Di sini, tidak ada operator casting yang diperlukan karena compiler akan melakukannya secara eksplisit.
Perbedaan Kunci Antara Pengecoran Jenis dan Konversi
- Perbedaan mendasar yang membedakan tipe casting dari konversi tipe adalah bahwa casting tipe adalah konversi dari satu tipe ke yang lain, yang dilakukan oleh programmer. Di sisi lain, konversi jenis adalah konversi dari satu jenis ke yang lain, dilakukan oleh kompiler saat mengkompilasi.
- Tipe casting dapat diterapkan pada tipe data yang mungkin tidak kompatibel satu sama lain tetapi, konversi tipe hanya dapat diterapkan pada tipe data yang kompatibel satu sama lain.
- Konversi dari satu tipe ke tipe lain dalam tipe casting memerlukan operator casting “()” sementara, konversi dari satu tipe data ke tipe lain dalam konversi tipe tidak memerlukan operator apa pun.
- Saat mengonversi satu tipe data ke tipe lain dalam tipe casting, tipe tujuan bisa lebih besar atau lebih kecil dari tipe sumber. Di sisi lain, tipe tujuan harus lebih besar dari tipe sumber dalam konversi tipe.
- Konversi dari satu tipe ke tipe lain dilakukan saat pengkodean dalam tipe casting sedangkan, dalam konversi tipe, konversi dari satu tipe ke tipe lain dilakukan secara eksplisit selama kompilasi.
- Tipe casting disebut konversi penyempitan karena di sini tipe tujuan dapat lebih kecil dari tipe sumber sedangkan, konversi tipe disebut konversi pelebaran karena di sini, tipe tujuan harus lebih besar daripada tipe sumber.
Kesimpulan:
Dapat disimpulkan bahwa konversi tipe dan tipe casting, keduanya melakukan tugas mengubah satu tipe data ke yang lain tetapi berbeda dalam arti bahwa tipe casting dilakukan oleh programmer, menggunakan operator cor '()' dan konversi tipe dilakukan oleh kompiler, dan tidak menggunakan operator apa pun.