Apa Jenis Casting ing Jawa?
Jinis data minangka sakumpulan nilai sing wis ditemtokake sing nemtokake jinis nilai sing bisa disimpen ing kono bebarengan karo operasi sing bisa ditindakake.Napa Tipe Casting Dibutuhake?
Jawa nduweni jinis data primitif sing beda-beda sing mbutuhake spasi ing memori. Iki bisa nyebabake masalah kompatibilitas nalika nemtokake nilai siji jinis data menyang liyane. Yen datatypes wis kompatibel, typecasting rampung kanthi otomatis dening compiler. Mangkono, typecasting ngrampungake masalah kompatibilitas utama nalika nangani macem-macem jinis data ing program kita.Jinis Jinis Casting Jawa
Ana rong jinis jinis casting ing Jawa.- Widening Type Casting - Uga dikenal minangka Casting Tipe Implisit utawa Otomatis
- Casting Type Narrowing - Uga dikenal minangka Casting Jinis Eksplisit utawa Manual
Widening Tipe Casting
Widening typecasting, minangka jeneng tabet, nuduhake widening saka jinis data cilik kanggo jinis data luwih gedhe. Kita nindakake typecasting iki nalika kita pengin ngowahi jinis cilik kanggo jinis gedhe. Jinis data kudu kompatibel karo siji liyane. Ora ana konversi implisit saka numerik menyang jinis char utawa boolean. Ing Jawa, jinis char lan boolean ora kompatibel.
byte -> short -> char -> int -> long -> float -> double
Jinis casting iki rampung kanthi otomatis dening compiler tanpa mundhut informasi. Ora mbutuhake pemicu eksternal dening programmer.
Tuladha
//Automatic type conversion
public class WideningExample {
public static void main(String[] args) {
int i = 100;
System.out.println("int value: " + i);
// int to long type
long l = i;
System.out.println("int to long value: " + l);
// long to float type
float f = l;
System.out.println("int to float value: " + f);
byte b = 1;
System.out.println("byte value: " + b);
// byte to int type
i = b;
System.out.println("byte to int value: " + i);
char c = 'a';
System.out.println("char value: " + c);
// char to int type
i = c;
// prints the ASCII value of the given character
// ASCII value of 'a' = 97
System.out.println("char to int value: " + i);
}
}
Output
nilai int: 100 int kanggo nilai dawa: 100 int kanggo nilai float: 100,0 nilai bita: 1 bita kanggo nilai int: 1 nilai char: char kanggo nilai int: 97
Panjelasan
Ing kode ing ndhuwur, kita wis ditampilake widening typecasting kang rampung dening compiler otomatis. Kaping pisanan, kita menehi nilai menyang int , byte , lan char . Kita banjur menehi nilai int menyang long lan float , sing loro luwih gedhe tinimbang int . Kita uga menehi nilai byte lan char menyang int . Loro-lorone byte lan char minangka jinis data sing luwih cilik tinimbang int , mula, konversi kasebut implisit.Narrowing Tipe Casting
Narrowing typecasting, minangka jeneng tabet, nuduhake narrowing saka jinis data luwih gedhe kanggo jinis data cilik. Kita nindakake typecasting iki nalika kita pengin ngowahi jinis gedhe menyang jinis cilik.
pindho -> float -> dawa -> int -> char -> cendhak -> byte
Kanggo jinis casting iki, kita ngilangi konversi standar Jawa kanthi nemtokake konversi kita dhewe. Kanggo entuk iki, kita nulis variabel utawa nilai sing kudu diketik sadurunge jinis data target ing kurung '()'. Nanging, jinis casting iki bisa nyebabake mundhut presisi.
Tuladha
//Manual Type Conversion
public class NarrowingExample {
public static void main(String[] arg) {
// double data type
double d = 97.04;
// Print statements
System.out.println("double value: " + d);
// Narrowing type casting from double to long
// implicitly writing the target data type in () followed by initial data type
long l = (long) d;
// fractional part lost - loss of precision
System.out.println("long value: " + l);
// Narrowing type casting from double to int
// implicitly writing the target data type in () followed by initial data type
int i = (int) l;
// fractional part lost - loss of precision
System.out.println("int value: " + i);
// Narrowing type casting from double to int
// implicitly writing the target data type in () followed by initial data type
char c = (char) i;
// displaying character corresponding to the ASCII value of 100
System.out.println("char value: " + c);
}
}
Output
Nilai pindho: 97,04 Nilai dawa: 97 Nilai int: 97 Nilai char: a
GO TO FULL VERSION