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.
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:
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:
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:
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