I Java, typ gjutning är en metod eller process som omvandlar en datatyp till en annan datatyp på båda sätt manuellt och automatiskt. Den automatiska konverteringen görs av kompilatorn och manuell konvertering utförs av programmeraren. I det här avsnittet kommer vi att diskutera typ gjutning och dess typer med ordentliga exempel.
Typ gjutning
Konvertera ett värde från en datatyp till en annan datatyp kallas typ gjutning .
Typer av typgjutning
Det finns två typer av gjutning:
- Breddning Typ Gjutning
- Avsmalnande typ gjutning
Breddning Typ Gjutning
Att konvertera en lägre datatyp till en högre kallas vidgning typ gjutning. Det är också känt som implicit konvertering eller kasta ner . Det görs automatiskt. Det är säkert eftersom det inte finns någon chans att förlora data. Det sker när:
- Båda datatyperna måste vara kompatibla med varandra.
- Måltypen måste vara större än källtypen.
byte -> short -> char -> int -> long -> float -> double
Omvandlingen mellan numerisk datatyp till char eller Boolean görs till exempel inte automatiskt. Dessutom är datatyperna char och booleska inte kompatibla med varandra. Låt oss se ett exempel.
WideningTypeCastingExample.java
public class WideningTypeCastingExample { public static void main(String[] args) { int x = 7; //automatically converts the integer type into long type long y = x; //automatically converts the long type into float type float z = y; System.out.println('Before conversion, int value '+x); System.out.println('After conversion, long value '+y); System.out.println('After conversion, float value '+z); } }
Produktion
Before conversion, the value is: 7 After conversion, the long value is: 7 After conversion, the float value is: 7.0
I exemplet ovan har vi tagit en variabel x och omvandlat den till en lång typ. Därefter omvandlas den långa typen till flyttypen.
Avsmalnande typ gjutning
Att konvertera en högre datatyp till en lägre kallas inskränkande typ gjutning. Det är också känt som explicit konvertering eller kasta upp . Det görs manuellt av programmeraren. Om vi inte utför casting rapporterar kompilatorn ett kompileringsfel.
double -> float -> long -> int -> char -> short -> byte
Låt oss se ett exempel på avsmalnande typ av gjutning.
I följande exempel har vi utfört den avsmalnande typen av gjutning två gånger. Först har vi konverterat dubbeltypen till lång datatyp efter att den långa datatypen har konverterats till int-typ.
NarrowingTypeCastingExample.java
java-tecken till int
public class NarrowingTypeCastingExample { public static void main(String args[]) { double d = 166.66; //converting double data type into long data type long l = (long)d; //converting long data type into int data type int i = (int)l; System.out.println('Before conversion: '+d); //fractional part lost System.out.println('After conversion into long type: '+l); //fractional part lost System.out.println('After conversion into int type: '+i); } }
Produktion
Before conversion: 166.66 After conversion into long type: 166 After conversion into int type: 166