Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Aula 2

Pessoal, esse trecho de código da Aula 2 está compilando normalmente.

static int inicial = 10;
static int segunda = inicial + 5; // compila

static int outra;
static void inicializa() {
    outra = 10;
}
static int naoCompila = outra + 1; 
// não compila, o método inicializa é ignorável
6 respostas

Weiler, Bom dia !!

exatamente , você não está chamando o método inicializa , então o valor por default de outra é 0 (zero ) logo o valor de naoCompila é 1

para que o valor de não compila seja 11 , você tem que colocar método inicializa deste jeito :

static int inicializa() {
    outra = 10;
    naoCompila = outra +1;
   return naoCompila 
}

porque disso , o java não sabe se algum momento o método inicializa será chamado , então ele utiliza o valor da variável padrão

espero ter ajudado Bons Estudos

Bom dia Celso, entendi, porém na Aula 2 nessa parte da explicação está informando que para o código compilar é necessário inicializar a variável "outra".

segue um pedaço da explicação:

"Outro caso interessante é que uma variável estática pode acessar outra estática, desde que a outra tenha um valor atribuído antes da definição da atual"

Entendi sua duvida ,

na aula está dizendo que não compila o código neh pois na verdade compila é isso ?

Isso mesmo

solução!

acredito que esteja errado no comentário do código , pois realmente compila o código no programa .

Entendi, então tranquilo. Seria interessante modificar essa parte da explicação para não confundir o pessoal que estiver lendo.

Muito obrigado Celso. Dúvida tirada. :)