Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Static this

class B {
      static void y() {
        this.z();
    }
    static void z() {
        System.out.println("z");
    }
}
class A {
    public static void main(String[] args) {
        new A().x();
    }
    static void x() {
        new B().y();
    }
}

Dessa forma também funciona?

1 resposta
solução!

Oi Manoel!

Não funciona por conta desta parte:

static void y() {
    this.z();
}

Não é possível usar o this num método estático, porque o this está associado com uma referência para um objeto. Quando usamos o static, não temos garantia que existe uma referência para um objeto. Isto porque podemos simplesmente fazer:

B.y();

Chamamos sem criar objeto e sem possuir referência. Por isso o this não funciona neste contexto.

Abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software