Declarando Múltiplas Variáveis
Você também pode declarar e inicializar várias variáveis na mesma instrução. Quantas variáveis você acha que são declaradas e inicializadas nas duas linhas seguintes?
String s1, s2;
String s3 = "yes", s4 = "no";
Quatro variáveis String foram declaradas: s1, s2, s3 e s4. Você pode declarar muitas variáveis na mesma declaração, desde que sejam todas do mesmo tipo. Você também pode inicializar um ou todos esses valores em linha. No exemplo anterior, temos duas variáveis inicializadas: s3 e s4. As outras duas variáveis foram declaradas, mas ainda não foram inicializadas.
Nesse ponto que fica complicado. Preste atenção nas coisas complicadas! O exame tentará enganar você. Novamente, quantas variáveis você acha que são declaradas e inicializadas neste código?
int i1, i2, i3 = 0;
Como você deve esperar, três variáveis foram declaradas: i1, i2 e i3. No entanto, apenas um desses valores foi inicializado: i3. Os outros dois permanecem declarados, mas ainda não foram inicializados. Esse é o truque. Cada fragmento separado por uma vírgula é uma pequena declaração própria. A inicialização de i3 só se aplica a i3. Não tem nada a ver com i1 ou i2 apesar de estar na mesma declaração.
Outra maneira de o exame tentar enganá-lo é mostrar o código como esta linha:
int num, String value; // DOES NOT COMPILE
Este código não é compilado porque ele tenta declarar várias variáveis de diferentes tipos na mesma declaração. O atalho para declarar várias variáveis apenas na mesma instrução funciona quando eles compartilham um tipo. Para se certificar de que entendeu isto, veja se consegue descobrir quais dos seguintes são declarações legais. "Legal", "válido" e "compila" são todos sinônimos no exame de Java. Tentamos usar toda a terminologia que você pode encontrar no exame.
boolean b1, b2;
String s1 = "1", s2;
double d1, double d2;
int i1; int i2;
int i3; i4;
A primeira declaração é legal. Ele declara duas variáveis sem inicializá-las. A segunda declaração também é legal. Declara duas variáveis e inicializa apenas uma delas.
A terceira declaração não é legal. Java não permite declarar dois tipos diferentes na mesma declaração. Espere um minuto! As variáveis d1 e d2 são do mesmo tipo. Ambos são do tipo double. Embora isso seja verdade, ainda não é permitido. Se você quiser declarar múltiplas variáveis na mesma declaração, eles devem compartilhar o mesmo tipo de declaração e não repetir isto. double d1, d2; teria sido legal.
A quarta declaração é legal. Embora int apareça duas vezes, cada uma está em uma declaração. Um ponto e vírgula (;) separa instruções em Java. Acontece que há duas declarações completamente diferentes na mesma linha. A quinta declaração não é legal. Novamente, temos duas declarações completamente diferentes na mesma linha. A segunda não é um declaração válida porque omite o tipo. Quando você vê um ponto-e-vírgula estranhamente colocado no exame, finja que o código está em linhas separadas e verifique se o código compila. Nesse caso, temos o seguinte:
int i1;
int i2;
int i3;
i4;// DOES NOT COMPILE
Olhando a última linha sozinha, você pode ver facilmente que a declaração é inválida. E sim, o exame realmente contém várias afirmações na mesma linha - em parte para tentar enganá-lo e, em parte, para obter mais código na tela. No mundo real, por favor limite você mesmo a uma declaração por linha. Seus companheiros de equipe agradecerão pelo código legível.