Depois foi atribuido o valor 30 para o mesmo objeto, por que continuou imprimindo 10 e 10?
Depois foi atribuido o valor 30 para o mesmo objeto, por que continuou imprimindo 10 e 10?
quando coloquei o this no class B{ int c; void c(int c) { c = c; } } ai ele imprime 10 e 30, é como se , sem o this não estivesse ocorrendo o shadowing automatico
eita ninguem pode ajudar? :/
Boa noite, Suellen! Como vai?
O que ocorre é que dentro do método o Java irá usar o c
que estiver no escopo do método, no caso o parâmetro. Daí para diferenciar o c
parâmetro do c
atributo é necessário usar o this
. Isso ocorre muito nos métodos set
!
Portanto, o que acontece no método c
é que o parâmetro c
recebe o valor dele mesmo. Por isso o atributo não é alterado e o valor 10 é impresso duas vezes.
Pegou a ideia?
Qualquer coisa é só falar!
Grande abraço e bons estudos!