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

Dúvida Bloco Estático

Boa Tarde.

O código a seguir irá imprimir na tela o valor 5. Porém imaginava que deveria ser impresso o valor 6, pois as variáveis no bloco static sobrescreveriam as de instância.

Por quê os valor 5 é impresso?

public class A{

    static int x=2;
    static int z;

    public static void main(String args[]){

        System.out.println(x+z);

    }

    static{

        int x=3;
        z=x;

    }

}
2 respostas
solução!

O bloco estático é executado primeiro , então x= z= 3 e, e em seguida a inicialização "inline" é executada , x teve um novo valor atribuído (x=2 ) e z permanece com o valor inicializado no bloco estático (z=3).

System.out.println(x+z); System.out.println(3+2); System.out.println(5);

Muito obrigado Breno