Qual das alternativas abaixo é CORRETA com relação à passage...

Próximas questões
Com base no mesmo assunto
Q2262700 Programação
Qual das alternativas abaixo é CORRETA com relação à passagem de parâmetros em métodos na linguagem Java?  
Alternativas

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