Gostaria de saber como se aplica o casting em uma aplicação java…
quando devo usar e se puderem coloquem um exemplo…
Obrigado e paz aí pra todos!!!
Gostaria de saber como se aplica o casting em uma aplicação java…
quando devo usar e se puderem coloquem um exemplo…
Obrigado e paz aí pra todos!!!
A sintaxe é
(tipo_desejado) expressão.
Ela serve para duas coisas:
Por exemplo, (int) 3.5 converte a expressão 3.5 (cujo tipo é double) para um int cujo valor é 3.
Por exemplo, se a classe JTextField é uma subclasse de JComponent, então fazer:
JComponent jc = new JTextField();
JTextField jc2 = (JTextField) jc;
Amigo existe dois tipos de casting o narrowing e widening onde a diferença de ambos é que um você força a conversão de long para um int por exemplo(narrowing) e a outra (widening) é uma conversão implicita da JVM de uma variavel de menor tamanho converte para uma de maior tamanho. ex: byte para um short.
Como é feita a conversão ?
Primeiramente você tem que saber o tamanho da variável, mas como assim?
vamos a tabela:
byte-> short -> int -> long -> float -> double
char->
Ou seja, acima como podemos ver um byte é menor que um short , onde a saida sera um short(conversão feita pela JVM)
Obs: O byte e o char sempre iram se transformar em um short(promoção aritmetica)
ex:
.....
byte a = 2;
short b = 1;
System.out.println("O resultado será: " );
System.out.println(a-b);
//A saida sera um short, ok?
Caso queira força a saida da variavel para um tipo desejado a sintaxe que você tem que usar é esta:
variavel = (tipoEscolhido)variavelDeMaiorTipo ;
long a = 2;
int b = 3;
a = (int)b;
//A saida sera um int, mas lembrando que pode haver perda de dados, visto que estamos transformando a
//a variavel para um menor tamanho, ok?
Abraços meu velho, espero ter lhe ajudado.
EDIT (Moderador) Só corrigi os termos (to narrow = estreitar, to widen = alargar). Nunca ouvi falar de “noring”, parece um sobrenome nórdico.
Opa desculpa amigo, quando eu tava respondendo voce ja tinha respondido.
Uma errata da minha explicação é que deu a entender que sempre fata a conversao de um int para long etc… onde na verdade irá depender de como voce colocar os atributos, ok?
Abraços!
Ai galera muito obrigado me ajudaram muito vlw mesmo…
Paz de Jah pra todos!!!