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

certificacao-java-metodos-encapsulamento section 2 exercise 4

E um metodo statico pode acessar apenas atributos e metodos estaticos porque o static void x da classe A conseguiu chamar o metodo (Y) da classe B que nao é estatico?

2 respostas
solução!

Pois foi feito o new! Realmente é uma pegadinha.

Repare que se fosse assim:

static void x() {
        B.y();
    }

não compilaria. pois y é um método de instância de B. Precisa de uma instância. Mas no exercício ele deu new. O que seria equivalente a:

static void x() {
        B objeto = new B();
        objeto.y();
    }

objeto é uma referência a uma instância de B, então pode ser invocado o método y.

Fazer new B().y() é só uma forma mais enxuta de fazer a mesma coisa.

Muito bom, realmente essa prova é cheia de pegadinhas. Obrigado