Tipo Primitivos

3 respostas
adrianogf

Pessoal, não entendi porque não consegui compilar o código abaixo. Já que a variavel a e b são do tipo byte de 8 bits. Como uma variavel short© de 16 bits não conseguiu receber os valore de a e b?? :?:

public class Literais{
    public static void main(String[] args)
     {
         byte a = 1;
         byte b = 1;
         short c; 
         c = a + b;
         System.out.println(a);
    }
}

Valew.
:smiley:

3 Respostas

Gerson

Pq é regra da linguagem uai… :wink:
Nessas operacoes aritmeticas ocorre promoção de tipo, elevando-o para o maior entre os dois operandos, e, ainda, devendo ser no mínimo um int. Assim, o resultado da operação é devolvido em int.

Pega qualquer livro pra SCJP que vai te explicar facilmente essas regrinhas, às vezes meio bizarras até. :?

adrianogf

Gerson:
Pq é regra da linguagem uai… :wink:
Nessas operacoes aritmeticas ocorre promoção de tipo, elevando-o para o maior entre os dois operandos, e, ainda, devendo ser no mínimo um int. Assim, o resultado da operação é devolvido em int.

Pega qualquer livro pra SCJP que vai te explicar facilmente essas regrinhas, às vezes meio bizarras até. :?

Unn…então toda operação vai ocorrer promoção de tipo e tudo no final vira int?

ranophoenix

No mínimo um int, se um long estiver envolvido, por exemplo, a promoção será para o long.

Criado 9 de junho de 2005
Ultima resposta 9 de jun. de 2005
Respostas 3
Participantes 3