Casting is used when we want to convert one data type to another.
- A literal integer is by default int primitive type. An operation involving int size or less always result in int.
- Float literals are by default double.
Implicit Casting
- Implicit Casting is done directly by the compiler. Example: Widening Conversions i.e. storing smaller values in larger variable types.
byte b = 10; //byte b = (int) 10; Example below compiles because compiler introduces an implicit cast.
short n1 = 5;
short n2 = 6;
//short sum = n1 + n2;//COMPILER ERROR
short sum = (short)(n1 + n2);//Needs an explicit cast
byte b = 5;
b += 5; //Compiles because of implicit conversion
int value = 100;
long number = value; //Implicit Casting
float f = 100; //Implicit Casting
Explicit Casting
- Explicit Casting needs to be specified by a programmer in code. Example: Narrowing Conversions. Storing larger values into smaller variable types;
- Explicit casting would cause truncation of value if the value stored is greater than the size of the variable.
long number1 = 25678;
int number2 = (int)number1;//Explicit Casting
//int x = 35.35;//COMPILER ERROR
int x = (int)35.35;//Explicit Casting
int bigValue = 280;
byte small = (byte) bigValue;
System.out.println(small);//output 24. Only 8 bits remain.
//float avg = 36.01;//COMPILER ERROR. Default Double
float avg = (float) 36.01;//Explicit Casting
float avg1 = 36.01f;
float avg2 = 36.01F; //f or F is fine
//byte large = 128; //Literal value bigger than range of variable type causes compilation error
byte large = (byte) 128;//Causes Truncation!
Comments
Post a Comment