Dalam tutorial ini, kita akan belajar mengenai Java Type Casting dan jenisnya dengan bantuan contoh.
Sebelum anda mengetahui tentang Java Type Casting , pastikan anda mengetahui tentang Jenis Data Java.
Jenis Pemutus
Proses menukarkan nilai satu jenis data ( int
, float
, double
, dll) untuk jenis data lain dikenali sebagai typecasting.
Di Jawa, terdapat 13 jenis penukaran jenis. Walau bagaimanapun, dalam tutorial ini, kita hanya akan menumpukan pada 2 jenis utama.
1. Casting Jenis Pelebaran
2. Pemutus Jenis Sempit
Untuk mengetahui mengenai jenis penukaran jenis lain, kunjungi Java Type Conversion (dokumentasi Java rasmi).
Pemutus Jenis Pelebaran
Dalam Pelebaran Jenis Pelebaran , Java secara automatik menukar satu jenis data ke jenis data yang lain.
Contoh: Menukar int menjadi dua kali ganda
class Main ( public static void main(String() args) ( // create int type variable int num = 10; System.out.println("The integer value: " + num); // convert into double type double data = num; System.out.println("The double value: " + data); ) )
Pengeluaran
Nilai integer: 10 Nilai berganda: 10.0
Dalam contoh di atas, kami menetapkan int
pemboleh ubah jenis bernama num kepada double
pemboleh ubah jenis bernama data.
Di sini, Java terlebih dahulu menukar int
data jenis menjadi double
jenis. Dan kemudian tetapkannya kepada double
pemboleh ubah.
Dalam kes Casting Type Widening , jenis data yang lebih rendah (mempunyai ukuran yang lebih kecil) diubah menjadi jenis data yang lebih tinggi (memiliki ukuran yang lebih besar). Oleh itu tidak ada kehilangan data. Inilah sebabnya penukaran jenis ini berlaku secara automatik.
Catatan : Ini juga dikenali sebagai Implisit Type Casting .
Pemutus Jenis Sempit
Dalam Penghantaran Jenis Sempit , kami secara manual menukar satu jenis data menjadi satu yang lain menggunakan kurungan.
Contoh: Menukar dua kali ganda menjadi int
class Main ( public static void main(String() args) ( // create double type variable double num = 10.99; System.out.println("The double value: " + num); // convert into int type int data = (int)num; System.out.println("The integer value: " + data); ) )
Pengeluaran
Nilai berganda: 10.99 Nilai integer: 10
Dalam contoh di atas, kami menetapkan double
pemboleh ubah jenis bernama num ke int
pemboleh ubah jenis bernama data.
Perhatikan garis,
int data = (int)num;
Di sini, int
kata kunci dalam kurungan menunjukkan bahawa pemboleh ubah num ditukar menjadi int
jenis.
Dalam kes Casting Type Narrowing , jenis data yang lebih tinggi (mempunyai ukuran yang lebih besar) diubah menjadi jenis data yang lebih rendah (mempunyai ukuran yang lebih kecil). Oleh itu terdapat kehilangan data. Inilah sebabnya mengapa penukaran jenis ini tidak berlaku secara automatik.
Catatan : Ini juga dikenali sebagai Casting Jenis Eksplisit .
Mari kita lihat beberapa contoh penukaran jenis lain di Java.
Contoh 1: Penukaran jenis dari int ke String
class Main ( public static void main(String() args) ( // create int type variable int num = 10; System.out.println("The integer value is: " + num); // converts int to string type String data = String.valueOf(num); System.out.println("The string value is: " + data); ) )
Pengeluaran
Nilai integer adalah: 10 Nilai rentetan ialah: 10
Dalam program di atas, perhatikan garisnya
String data = String.valueOf(num);
Di sini, kami telah menggunakan valueOf()
kaedah kelas Java String untuk menukar pemboleh ubah jenis int menjadi rentetan.
Contoh 2: Penukaran jenis dari String ke int
class Main ( public static void main(String() args) ( // create string type variable String data = "10"; System.out.println("The string value is: " + data); // convert string variable to int int num = Integer.parseInt(data); System.out.println("The integer value is: " + num); ) )
Pengeluaran
Nilai rentetan ialah: 10 Nilai integer adalah: 10
Dalam contoh di atas, perhatikan garisnya
int num = Integer.parseInt(data);
Di sini, kami telah menggunakan parseInt()
kaedah Integer
kelas Java untuk menukar variabel jenis rentetan menjadi int
pemboleh ubah.
Catatan : Sekiranya pemboleh ubah rentetan tidak dapat diubah menjadi pemboleh ubah integer maka berlaku pengecualian bernama NumberFormatException
.