Há objetos que não podem ser modificados, apenas excluídos. Portanto, para modificar um valor imutável pertencente a uma variável, necessita-se:

Questão

Há objetos que não podem ser modificados, apenas excluídos. Portanto, para modificar um valor imutável pertencente a uma variável, necessita-se:

Alternativas

a) Gerar um novo algoritmo com o valor indevido e utilizar uma operação de atribuição para que ele seja mostrado pela variável.

b) Gerar uma nova constante com o valor indevido e utilizar uma operação de atribuição para que ele seja mostrado pela variável.

Resposta certa

c) Gerar um novo objeto com o valor devido e utilizar uma operação de atribuição para que ele seja mostrado pela variável.

d) Gerar uma nova variável apenas com o valor devido e, utilizar uma operação de atribuição para que ele seja mostrado pela variável.

e) Gerar uma nova constante com o valor devido e utilizar uma operação de atribuição para que ele seja mostrado pela variável.

Explicação

Um objeto imutável não pode ter seu estado alterado depois de criado. Assim, quando queremos “modificar” o valor armazenado em uma variável que referencia um objeto imutável, o que realmente fazemos é:

  1. criar um novo objeto (já com o valor correto);
  2. reatribuir a variável para apontar para esse novo objeto.

Exemplo conceitual: se uma string é imutável, ao “alterá-la” você cria outra string e faz a variável passar a referenciar a nova.

Analisando as alternativas:

  • (a) fala em “novo algoritmo” (não faz sentido no contexto de imutabilidade de objetos).
  • (b) e (e) falam em “nova constante” e ainda por cima usam “valor indevido” em (b); além disso, constante não é o ponto central aqui.
  • (d) fala em “gerar uma nova variável”, mas não é necessário criar outra variável; o essencial é criar um novo objeto e atribuir à variável existente.
  • (c) descreve exatamente o procedimento correto.
Carregando…

Questões relacionadas

Ver últimas questões