O que é CAST?
Sabemos que é possível atribuir o conteúdo de uma variável a outra. No entanto, se a variável de origem for de um tipo diferente de variável de destino, o dado pode ter de passar por um processo de conversão antes de ser armazenado.
Conversões entre tipos e cast, acontecem frequentemente quando programamos em Java. Transformar um tipo de variável para outro é chamado de cast ou casting.
1 2 3 |
int a = 20; double b = 10.5; System.out.println("Soma: " + (a + b)); |
Conversões Automáticas
Primeiramente, é preciso compreender duas situações distintas que podem ocorrer no que tange à atribuição do conteúdo de uma variável de tipo numérico para outra variável numérica.
Em uma dessas situações não é preciso converter o dado da variável de origem para o tipo da variável de destino.
Isso é o que se conhece como promoção automática, e só ocorre quando o tipo da variável de destino comporta valores iguais ou superiores ao comportados pela variável de origem.
Esse esquema indica que para atribuir o conteúdo de uma variável do tipo int a uma variável do tipo long, float ou double, não haverá a necessidade de realizar conversão alguma.
Do mesmo modo, uma variável do tipo byte pode ser atribuída a qualquer outro tipo de variável numérica (short, int, long, float e double) sem a necessidade de conversão de seu conteúdo.
Isso pode ser feito normalmente, como segue:
1 2 |
byte bt = 127; double db = bt; |
Conversões não Automáticas
No entanto, a atribuição do conteúdo de uma variável de determinado tipo para outro tipo que se encontra à sua esquerda, no esquema anterior, somente será possível mediante conversão explícita desse conteúdo para o tipo de destino.
Para atribuir o conteúdo de uma variável do tipo int a uma variável do tipo byte, por exemplo, é preciso convertê-lo para byte. Veja o procedimento:
1 2 |
int it = 55; byte bt = (byte) it; |
Conversões de um tipo de maior capacidade para de menor capacidade, tem uma possibilidade de perda de informação.
O tipo de dado boolean é o único tipo primitivo que não suporta casting. Segue abaixo uma tabela com todos os tipos de casting possíveis:
Exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
public class ConversoesNumeros{ public static void main(String[] args){ byte numeroByte = 127; short numeroShort = numeroByte; System.out.println(); System.out.println(numeroShort); short numeroShort1 = 127; byte numeroByte1 = (byte) numeroShort1; System.out.println(numeroByte1); short numeroShort2 = 130; byte numeroByte2 = (byte) numeroShort2; System.out.println(numeroByte2); long n = 2147483648L; System.out.println(n); System.out.println((int)n); } } |
Caso queira ver uma aula sobre este assunto, digite o seu email para receber acesso ao vídeo.
Fonte1: Livro: Programação de Computadores Em Java – Rui Rossi dos Santos
Fonte2: https://fmsystem.files.wordpress.com/2012/03/5-conversc3a3o-de-tipos-em-java2.pdf
Fonte3: http://www.universidadejava.com.br/materiais/java-casting-tipos-primitivos/
Deixe um comentário