Qual das alternativas abaixo é CORRETA com relação à passage...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: D - A única forma possível é por valor.
A linguagem de programação Java utiliza o conceito de passagem por valor em todos os casos de passagem de parâmetros para métodos. Isso significa que uma cópia do valor é passada para o método, e não a referência ao objeto original ou a variável. No entanto, é importante destacar uma nuance presente em Java: quando passamos um objeto como parâmetro para um método, na verdade estamos passando a referência por valor. Apesar desse detalhe, oficialmente Java considera que tudo é passado por valor.
Para tipos primitivos como int, double, char entre outros, isso é bastante direto, pois o valor literal é o que é passado. Por outro lado, para objetos, o que se passa é uma cópia da referência do objeto. Isso significa que o método recebe uma cópia do valor da referência, sendo capaz de modificar o objeto original, mas não a referência em si, que continua apontando para o mesmo objeto. Se tentarmos reatribuir a referência dentro do método, o objeto original ao qual a referência apontava antes de entrar no método não é alterado.
A alternativa A confunde ao sugerir que há uma distinção clara entre passagem por valor e passagem por referência em Java, o que não é verdadeiro de acordo com a definição oficial. A alternativa B está incorreta porque Java não passa objetos por referência no sentido clássico, e sim a referência por valor. A alternativa C também está incorreta por afirmar que a passagem pode ser tanto por valor quanto por referência, o que não se aplica à Java.
Assim, a alternativa correta é a D, pois reflete corretamente o mecanismo de passagem de parâmetros em Java, que é sempre por valor, mesmo no caso de objetos, onde o que é passado por valor é a referência ao objeto, e não o objeto em si.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Assunto polêmico, mas vamos lá.
Em Java, NÃO EXISTE passagem por referência, tudo é passado por valor.
Ai alguém fala:
“Mas objetos são passados por referência”. Não é bem assim…
Em Java, tudo que não for um tipo primitivo (boolean, char, byte, short, int, long, float e double) é uma referência. Esse tipo referência contém um VALOR, sendo o mesmo que é passado em um método.
Daí que vem a confusão… Em Java nós não trabalhamos diretamente com endereçamento (ponteiros e referências)
Confuso né… O que tem q se ter em mente é que as referências em Java não são referências tipo C/C++, é necessário interpretá-las de outra forma (apesar de parecido…)
Se alguém puder ajudar com mais conceitos seria interessante.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo