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

Variável local dentro de um bloco e variável passada como parâmetro no método

Olá, tenho dúvida sobre variável local e como ela é modificada dentro de um método ou bloco. Quando a variável é criada dentro de um loop (por exemplo, dentro de um if...else) , ela morre dentro do loop assim que sai do if...else, certo? No caso da variável (já instanciada) que é passada como parâmetro dentro de um método, ela é modificada dentro do método e quando o método termina de ser executado, a variável retorna modificada, certo? Existe algum outro caso especial em que variáveis são modificadas dentro de um bloco ou método?

1 resposta
solução!

Olá Erica, tudo bem?

O importante neste caso é sabermos que variáveis primitivas passam uma "cópia do valor" e variáveis de referência passam "uma referência para o mesmo objeto". O que isso significa na prática? Por exemplo, quando eu passo um valor inteiro 10 como parâmetro de um método, temos duas variáveis distintas (cada uma com seu escopo), ou seja, mesmo se o método modificar para 20, a variável fora do método continua com o valor 10. Todavia, para objetos é diferente: estamos passando uma referência para o mesmo objeto na memória, ou seja, se eu modificar o valor do objeto dentro do método o mesmo também será refletido fora desse método, pois ambas as referências estão apontando para o mesmo objeto.

Qualquer dúvida estou à disposiçã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