Casting de tipo Java (com exemplos)

Neste tutorial, aprenderemos sobre o Java Type Casting e seus tipos com a ajuda de exemplos.

Antes de aprender sobre Java Type Casting , certifique-se de saber sobre Java Data Types.

Fundição de Tipo

O processo de converter o valor de um tipo de dados ( int, float, double, etc.) para um outro tipo de dados é conhecida como a conversão de tipo.

Em Java, existem 13 tipos de conversão de tipo. No entanto, neste tutorial, vamos nos concentrar apenas nos 2 tipos principais.

1. Fundição do tipo de alargamento

2. Fundição do tipo estreito

Para aprender sobre outros tipos de conversão de tipo, visite Java Type Conversion (documentação oficial do Java).

Ampliação do Tipo de Fundição

Em Widening Type Casting , Java converte automaticamente um tipo de dados em outro tipo de dados.

Exemplo: convertendo int em duplo

 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); ) ) 

Resultado

 O valor inteiro: 10 O valor duplo: 10,0 

No exemplo acima, estamos atribuindo a intvariável de tipo denominada num a uma doublevariável de tipo denominada data.

Aqui, o Java primeiro converte os intdados de tipo em doubletipo. Em seguida, atribua-o à doublevariável.

No caso de Widening Type Casting , o tipo de dados inferior (com tamanho menor) é convertido no tipo de dados superior (com tamanho maior). Portanto, não há perda de dados. É por isso que esse tipo de conversão ocorre automaticamente.

Nota : Isso também é conhecido como Fundição de Tipo Implícito .

Fundição de tipo estreito

Em Narrowing Type Casting , convertemos manualmente um tipo de dados em outro usando o parêntese.

Exemplo: conversão de double em 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); ) ) 

Resultado

 O valor duplo: 10,99 O valor inteiro: 10 

No exemplo acima, estamos atribuindo a doublevariável de tipo denominada num a uma intvariável de tipo denominada data.

Observe a linha,

 int data = (int)num; 

Aqui, a intpalavra - chave entre parênteses indica que a variável num é convertida no inttipo.

No caso de Narrowing Type Casting , os tipos de dados superiores (com tamanho maior) são convertidos em tipos de dados inferiores (com tamanho menor). Portanto, há perda de dados. É por isso que esse tipo de conversão não ocorre automaticamente.

Nota : Isso também é conhecido como Fundição de tipo explícito .

Vamos ver alguns dos exemplos de outras conversões de tipo em Java.

Exemplo 1: conversão de tipo de int em 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); ) ) 

Resultado

 O valor inteiro é: 10 O valor da string é: 10 

No programa acima, observe a linha

 String data = String.valueOf(num); 

Aqui, usamos o valueOf()método da classe Java String para converter a variável do tipo int em uma string.

Exemplo 2: conversão de tipo de String para 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); ) ) 

Resultado

 O valor da string é: 10 O valor inteiro é: 10 

No exemplo acima, observe a linha

 int num = Integer.parseInt(data); 

Aqui, usamos o parseInt()método da Integerclasse Java para converter uma variável do tipo string em uma intvariável.

Nota : Se a variável string não pode ser convertida em variável inteira, então NumberFormatExceptionocorre uma exceção chamada .

Artigos interessantes...