In deze zelfstudie leren we met behulp van voorbeelden over Java Type Casting en zijn typen.
Voordat u meer over Java Type Casting leert , moet u weten wat Java-gegevenstypen zijn.
Typ Casting
Het omzetten van de waarde van een gegevenstype ( int
, float
, double
etc.) naar een ander gegevenstype heet typecasting.
In Java zijn er 13 soorten typeconversie. In deze tutorial zullen we ons echter alleen concentreren op de twee belangrijkste typen.
1. Verbreding type gieten
2. Vernauwing van het type gieten
Bezoek Java Type Conversion (officiële Java-documentatie) voor meer informatie over andere typen typeconversie.
Verbreding type gieten
Bij Widening Type Casting converteert Java automatisch het ene gegevenstype naar een ander gegevenstype.
Voorbeeld: int converteren naar double
class Main ( public static void main(String() args) ( // create int type variable int num = 10; System.out.println("The integer value: " + num); // convert into double type double data = num; System.out.println("The double value: " + data); ) )
Uitvoer
De gehele waarde: 10 De dubbele waarde: 10,0
In het bovenstaande voorbeeld wijzen we de typevariabele met de int
naam num toe aan een double
typevariabele met de naam data.
Hier converteert de Java eerst de typegegevens int
naar het double
type. En wijs het vervolgens toe aan de double
variabele.
In het geval van Widening Type Casting wordt het lagere datatype (met een kleinere omvang) geconverteerd naar het hogere datatype (met een grotere omvang). Er is dus geen verlies aan gegevens. Dit is de reden waarom dit type conversie automatisch gebeurt.
Opmerking : dit wordt ook wel Implicit Type Casting genoemd .
Versmalling Type Casting
Bij Narrowing Type Casting converteren we handmatig het ene gegevenstype naar het andere met behulp van de haakjes.
Voorbeeld: dubbel omzetten in een int
class Main ( public static void main(String() args) ( // create double type variable double num = 10.99; System.out.println("The double value: " + num); // convert into int type int data = (int)num; System.out.println("The integer value: " + data); ) )
Uitvoer
De dubbele waarde: 10,99 De gehele waarde: 10
In het bovenstaande voorbeeld wijzen we de typevariabele met de double
naam num toe aan een int
typevariabele met de naam data.
Let op de lijn,
int data = (int)num;
Hier geeft het int
sleutelwoord tussen haakjes aan dat de variabele num wordt geconverteerd naar het int
type.
In het geval van Narrowing Type Casting worden de hogere datatypes (met een grotere omvang) omgezet in lagere datatypes (met een kleinere omvang). Vandaar dat er gegevens verloren gaan. Dit is de reden waarom dit type conversie niet automatisch gebeurt.
Opmerking : dit wordt ook wel Explicit Type Casting genoemd .
Laten we eens kijken naar enkele voorbeelden van andere typeconversies in Java.
Voorbeeld 1: typeconversie van int naar String
class Main ( public static void main(String() args) ( // create int type variable int num = 10; System.out.println("The integer value is: " + num); // converts int to string type String data = String.valueOf(num); System.out.println("The string value is: " + data); ) )
Uitvoer
De gehele waarde is: 10 De stringwaarde is: 10
Let in het bovenstaande programma op de lijn
String data = String.valueOf(num);
Hier hebben we de valueOf()
methode van de Java String-klasse gebruikt om de int-type variabele om te zetten in een string.
Voorbeeld 2: typeconversie van String naar int
class Main ( public static void main(String() args) ( // create string type variable String data = "10"; System.out.println("The string value is: " + data); // convert string variable to int int num = Integer.parseInt(data); System.out.println("The integer value is: " + num); ) )
Uitvoer
De tekenreekswaarde is: 10 De gehele waarde is: 10
Let in het bovenstaande voorbeeld op de lijn
int num = Integer.parseInt(data);
Hier hebben we de parseInt()
methode van de Java- Integer
klasse gebruikt om een stringtype-variabele om te zetten in een int
variabele.
Opmerking : Als de stringvariabele niet kan worden geconverteerd naar de integer-variabele, treedt een genoemde uitzondering NumberFormatException
op.