Pessoal,
No livro da Kathy tem o seguinte código, no qual está comentada minha dúvida.
Estava lendo sobre sombreamento de variáveis...tudo maravilha até chegar nisso aqui que embolou minha cabeça :lol:
public class Bar {
int barNum = 28;
}
public class Foo {
Bar myBar = new Bar();
void changeIt(Bar myBar) {
myBar.barNum = 99;
System.out.println("myBar.barNum in changeIt is " + myBar.barNum);
myBar = new Bar();
myBar.barNum = 420; //Como o compilador sabe que é o objeto myBar criado anteriormente?
System.out.println("myBar.barNum in changeIt is now " + myBar.barNum);
}
public static void main(String[] args) {
Foo f = new Foo();
System.out.println("f.myBar.barNum is " + f.myBar.barNum);
f.changeIt(f.myBar);
System.out.println("myBar.barNum after changeIt is " + f.myBar.barNum);
}
}
Saída:
f.myBar.barNum is 28
myBar.barNum in changeIt is 99
myBar.barNum in changeIt is now 420
myBar.barNum after changeIt is 99
: