Considere a seguinte Classe Comparação implementada em Java....
Quais strings serão impressas no console?
Comentários
Veja os comentários dos nossos alunos
Resposta B
Método Concat->Recebe o conteúdo entretanto não possui retorno logo a sua modificação é dentro da sua propria variável do método não altera a variável do main.
( str + str2).equals("testeConcat")->Falso pois nesse caso a comparação verifica se os endereços na memória são iguais e não o conteúdo.
O modo correto seria (str + str2).equals("testeConcat") ai sim retornaria true;
concat (str)-> Nesse momento ele passa para o método concat a String str
str.equals("testeConcat") ->Cuidado a variavel str continua do mesmo modo inicial conteúdo "teste" logo esse if é falso
Deveria ser a letra D
Sempre que é passado uma referencia de um objeto (str) para um método e o valor que essa referencia aponta é alterado, no retorno do método esse valor passa a ser o novo valor do objeto..
Deveria ter usado o .equal(), pois == se compara a referencia, já .equal o valor.
Obs.: O método concat tem void. Ou seja, não retorna o valor. O que aconteceu dentro do bloco do método concat não vai alterar str.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo