Typecasting in Java is het proces waarbij het ene gegevenstype naar een ander gegevenstype wordt geconverteerd met behulp van de casting-operator. Wanneer u een waarde van het ene primitieve gegevenstype aan een ander type toewijst, staat dit bekend als typecasting. Om het gebruik van een variabele op een specifieke manier mogelijk te maken, vereist deze methode dat de Java-compiler expliciet wordt geïnstrueerd om een variabele van het ene gegevenstype te behandelen als een variabele van een ander gegevenstype.
Syntaxis:
variableName = () value;>
Soorten typegieten
Er zijn twee soorten Type Casting in Java:
- Verbreding van het gieten van typen
- Smal type gieten
Verbreding van het gieten van typen
Een lager gegevenstype wordt omgezet in een hoger gegevenstype door een proces dat bekend staat als 'widening type casting'. Impliciete type-casting en casting-down zijn enkele namen ervoor. Het komt van nature voor. Omdat er geen kans is op gegevensverlies, is het veilig. Verbreding Type casting vindt plaats wanneer:
- Het doeltype moet groter zijn dan het brontype.
- Beide gegevenstypen moeten compatibel zijn met elkaar.
Syntaxis:
larger_data_type variable_name = smaller_data_type_variable;>
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);> >}> }> |
char naar Java met gehele getallen
>
>Uitvoer
YouTube-video's downloaden met vlc
Integer: 10 Long: 10 Double: 10.0>
Smal type gieten
Het proces van het verkleinen van een groter gegevenstype naar een kleiner gegevenstype staat bekend als narrowing type casting. Casting of expliciete typecasting zijn andere namen ervoor. Het gebeurt niet zomaar vanzelf. Als we dat niet expliciet doen, zal er een compileerfout optreden. Het beperken van het casten van het type is onveilig omdat gegevensverlies kan optreden als gevolg van het kleinere bereik van toegestane waarden van het lagere gegevenstype. Een castoperator assisteert bij het proces van expliciet casten.
Syntaxis:
smaller_data_type variable_name = (smaller_data_type) larger_data_type_variable;>
Voorbeeld:
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);> >}> }> |
>
>Uitvoer
Original Value before Casting100.245 After Type Casting to short 100 After Type Casting to int 100>
Soorten expliciete casting
Er zijn hoofdzakelijk twee soorten expliciete casting:
- Expliciete upcasting
- Expliciete downcasting
Expliciete upcasting
Upcasting is het proces waarbij een subtype naar een supertype wordt gecast in de opwaartse richting van de overervingsboom. Wanneer naar een subklasse-object wordt verwezen door een superklasse-referentievariabele, wordt zonder enige verdere inspanning een automatisch proces geactiveerd.
Voorbeeld:
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();> >}> }> |
ongedefinieerde helling
>
wat is build-essential ubuntu
>Uitvoer
The dog barks>
Expliciete downcasting
Wanneer een subklassetype verwijst naar een object van de bovenliggende klasse, wordt het proces downcasting genoemd. Als dit handmatig wordt gedaan, geeft de compiler een runtime ClassCastException-fout af. Dit kan alleen worden gedaan door de operator instanceof te gebruiken. Alleen het neerhalen van een object dat al omhoog is gebracht, is mogelijk.
Voorbeeld:
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();> >}> }> |
>
>Uitvoer
The animal is eating. The cat is meowing.>