Typecasting i Java är processen att konvertera en datatyp till en annan datatyp med hjälp av casting-operatorn. När du tilldelar ett värde från en primitiv datatyp till en annan typ kallas detta typcasting. För att möjliggöra användningen av en variabel på ett specifikt sätt, kräver denna metod att Java-kompilatorn uttryckligen instrueras att behandla en variabel av en datatyp som en variabel av en annan datatyp.
Syntax:
variableName = () value;>
Typer av typgjutning
Det finns två typer av typcasting i java:
- Breddning Typ Gjutning
- Smal typgjutning
Breddning Typ Gjutning
En lägre datatyp omvandlas till en högre genom en process som kallas gjutning av bredningstyp. Implicit typgjutning och nedgjutning är några namn för det. Det förekommer naturligt. Eftersom det inte finns någon risk för dataförlust är det säkert. Gjutning av breddningstyp sker när:
- Måltypen måste vara större än källtypen.
- Båda datatyperna måste vara kompatibla med varandra.
Syntax:
larger_data_type variable_name = smaller_data_type_variable;>
abstrakta metoder
Java
// Java program to demonstrate Widening TypeCasting> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >int> i =>10>;> > >// Wideing TypeCasting (Automatic Casting)> >// from int to long> >long> l = i;> > >// Wideing TypeCasting (Automatic Casting)> >// from int to double> >double> d = i;> > >System.out.println(>'Integer: '> + i);> >System.out.println(>'Long: '> + l);> >System.out.println(>'Double: '> + d);> >}> }> |
>
>Produktion
setinterval javascript
Integer: 10 Long: 10 Double: 10.0>
Smal typgjutning
Processen att minska en större datatyp till en mindre kallas gjutning av avsmalnande typ. Casting up eller explicit typ casting är andra namn för det. Det händer inte bara av sig självt. Om vi inte uttryckligen gör det kommer ett kompileringsfel att uppstå. Casting av avsmalnande typ är osäker eftersom dataförlust kan inträffa på grund av den lägre datatypens mindre intervall av tillåtna värden. En gjuten operatör hjälper till i processen med explicit gjutning.
Syntax:
smaller_data_type variable_name = (smaller_data_type) larger_data_type_variable;>
Exempel:
Java
// Java Program to demonstrate Narrow type casting> import> java.io.*;> > class> GFG {> >public> static> void> main(String[] args)> >{> >double> i =>100.245>;> > >// Narrowing Type Casting> >short> j = (>short>)i;> >int> k = (>int>)i;> > >System.out.println(>'Original Value before Casting'> >+ i);> >System.out.println(>'After Type Casting to short '> >+ j);> >System.out.println(>'After Type Casting to int '> >+ k);> >}> }> |
>
>Produktion
Original Value before Casting100.245 After Type Casting to short 100 After Type Casting to int 100>
Typer av explicit gjutning
Det finns huvudsakligen två typer av explicit casting:
kasta undantagshantering i java
- Explicit uppsändning
- Explicit nedkastning
Explicit uppsändning
Upcasting är processen att gjuta en subtyp till en supertyp i arvsträdets uppåtgående riktning. När ett subklassobjekt refereras av en superklassreferensvariabel utlöses en automatisk process utan ytterligare ansträngning.
Exempel:
Java
// Java Program to demonstrate Explicit Upcasting> import> java.io.*;> > class> Animal {> >public> void> makeSound()> >{> >System.out.println(>'The animal makes a sound'>);> >}> }> > class> Dog>extends> Animal {> >public> void> makeSound()> >{> >System.out.println(>'The dog barks'>);> >}> > >public> void> fetch()> >{> >System.out.println(>'The dog fetches a ball'>);> >}> }> class> GFG {> >public> static> void> main(String[] args)> >{>// Upcasting> >Animal animal =>new> Dog();> >// Calls the overridden method in Dog class> >animal.makeSound();> >// This would give a compile error as fetch() is not> >// a method in Animal class> >// animal.fetch();> >}> }> |
>
eol i python
>Produktion
The dog barks>
Explicit nedkastning
När en underklasstyp hänvisar till ett objekt i den överordnade klassen, kallas processen nedsändning. Om det görs manuellt, utfärdar kompilatorn ett runtime ClassCastException-fel. Det kan bara göras genom att använda instanceof-operatorn. Endast nedkastning av ett objekt som redan har uppkastats är möjligt.
Exempel:
Java
// Java Program to demonstrate Explicit downcasting> import> java.io.*;> class> Animal {> >public> void> eat()> >{> >System.out.println(>'The animal is eating.'>);> >}> }> > class> Cat>extends> Animal {> >public> void> meow()> >{> >System.out.println(>'The cat is meowing.'>);> >}> }> > class> GFG {> >public> static> void> main(String[] args)> >{> >Animal animal =>new> Cat();> >animal.eat();> > >// Explicit downcasting> >Cat cat = (Cat)animal;> >cat.meow();> >}> }> |
>
>Produktion
The animal is eating. The cat is meowing.>