Bom dia galera,
entao, pra falar bem a vdd nao entendi o que exatamente aquele "new C(this)", o que exatamente esta sendo passado ali? Tentei repassar passo a passo, mas confesso que achei confuso ali, alguem consegue me ajudar?
Bom dia galera,
entao, pra falar bem a vdd nao entendi o que exatamente aquele "new C(this)", o que exatamente esta sendo passado ali? Tentei repassar passo a passo, mas confesso que achei confuso ali, alguem consegue me ajudar?
Oi Jose, os exemplos no curso de certificação precisam ser mais azedos para já te deixar mais preparado :). Vamos lá. A classe C tem um construtor que aceita receber B como argumento.
class C { C(B b) {new B(new A());} C() {new B();} }
Agora vou dar um zoom na classe B.
class B { ... B() { new C(this);} }
No construtor sem argumentos de B, ele já instancia um objeto do tipo C passando como argumento um objeto do tipo B. Como você está dentro da classe B e precisa de uma referência para o próprio objeto, é usado o this.
Alberto, obrigado pelo resposta. Deixa só eu confirmar pra ver se entendi. Entao nesse casso ali no new C(this) ele estaria recebendo o objeto atual que seria do tipo B? e entraria numa especie de looping? vlw
Oi José, ainda não, mas já chegamos lá. Se ele estivesse fazendo new B(), aí vc estaria entrando em chamada infinita. Perceba que vc está instanciando um objeto do tipo C e, por conta disso, vc não está entrando em um loop infinito :).