A - Não é possível uma conversão implícita de char para short
F - O resultado da operação é int, e também não compila porque não é possível uma conversão implícita de int para short
D
Duende_MacabroPJ
Acho q so as opções A e F tb. O cast da F so passa o x e nao a operação toda.
:oops:
F
fabiostbPJ
essa conversão é possível sim, veja:
shorth1='A';
compila numa boa;
h1 recebe o numero 65.
S
sensPJ
“fabiostb”:
A - Não é possível uma conversão implícita de char para short
essa conversão é possível sim, veja:
shorth1='A';
compila numa boa;
h1 recebe o numero 65.
neste caso da certo po que 65 cabe dentro de um short, mas se vc fizesse assim:
charh1='A';shorth2=h1;
daria erro de precisão!
obrigando fazer um casting manual!
por isso comcordo com os demais em que a resposta é A e F
F
fabiostbPJ
tb acho q a resposta seja A e F, som F eu concordo plenamente, mas em A estou na dúvida, mas escolheria A por eliminação:
qdo eu faço assim:
finalcharh1='A';shorth2=h1;
dá certo, entaum pq q qdo digo q o parametro x é final n dá certo?!
S
sensPJ
“fabiostb”:
tb acho q a resposta seja A e F, som F eu concordo plenamente, mas em A estou na dúvida, mas escolheria A por eliminação:
qdo eu faço assim:
finalcharh1='A';shorth2=h1;
dá certo, entaum pq q qdo digo q o parametro x é final n dá certo?!
pq o parametro x é final mas na verdade não é o x que é enviado e sim uma cópia de x que por sua vez não é final!
na verdade eu gostaria de saber pq q não da quando não e final e quando é final da certo!? (no caso do exemplo que vc postou )
F
fabiostbPJ
faz parte da regra do java, pode ter:
o cast implicito é feito se
byte,short ou char do lado esquerdo da atrivuição e
byte,short,char e int do lado direito , sendo avlores constantes (final)
obs.: tudo isso sendo que o source não pode estourar a gama do destino
acho q é assim
S
sensPJ
fabiostb, valeu pela dica velho!
eu não tava ligado neste detalhe, muito importante pra quem quer fazer a prova de certificação
valeu …
[]s Victor …
R
RobsonPJ
A resposta:
Se referia ao contexto da pergunta. Mas generalizando: Somente literais inteiros e expressões envolvendo operandos finais até int podem ser atribuídas a char, short ou byte por conversão implícita.
Dá certo quando o operando do lado direito da atribuição é final porque sendo final não pode ser alterado e aí o compilador tem condições de avaliar se haverá perda de precisão.
:???:
F
fabiostbPJ
com isso dá pra se perceber que a atribuição normal difere do RETURN, que é um caso especial de atribuição .
pelo meu ver as regras mmudam qdo se trata de RETURN, alguem pode explicar?