1
resposta

Alguém poderia me ajudar nessa questão.

O código abaixo é de uma classe chamada combatente, com seus atributos e métodos.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como pode ser observado no código, o ataque só ocorre caso o número de combatentes seja maior do que 4.

A aplicação abaixo utiliza a classe combatente, instanciando objetos e executando o ataque.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

A saída no console para a execução da aplicação acima é:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Analisando os códigos acima e a execução da classe combatente, responda:

Marque a alternativa que explica corretamente qual seria o impacto de se alterar o atributo numeroDeCombatentes da classe Combatente, fazendo com que ele deixe de ser um atributo estático, conforme abaixo: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Escolha uma opção:

a. Basta incluir a cláusula this no comando de retorno do método getNumeroDeCombatentes e o funcionamento da aplicação não será afetado;

b. Mesmo realizando os ajustes necessários no método getNumeroDeCombatentes o ataque do combatente nunca irá ocorrer uma vez que cada instância terá seu número de combatentes igual a 1;

c. Mesmo realizando os ajustes necessários no método getNumeroDeCombatentes o ataque do combatente nunca irá ocorrer uma vez que a aplicação utiliza sempre o combatente 1 para atacar e para dar certo a aplicação deveria atacar com o combatente 5, que é maior que o 4 que está na condição de ataque (numeroDeCombatentes > 4);

d. Com a realização dos ajustes necessários no método getNumeroDeCombatentes o ataque irá ocorrer normalmente após haverem 5 combatentes instanciados. Mesmo o atributo não sendo estático, ele continua recebendo os valores e tendo seu total incrementado.

e. Com a realização dos ajustes necessários no método getNumeroDeCombatentes, a aplicação irá funcionar e o ataque irá ocorrer, porém, o combatente que irá atacar será o Magneto, que foi o último combatente instanciado. Isso ocorrer em função de cada combatente ter uma identificação própria no atributo numeroDeCombatentes, e não mais uma identificação compartilhada para todos;

1 resposta

Oi Andre,

aqui, ao alterar o atributo numeroDeCombatentes e tirar o static, tbm precisa tirar o static do método getNumeroDeCombatentes. Isso tbm significa que para cada objeto da classe Combatente existe o seu atributo numeroDeCombatentes. Ou seja, o numeroDeCombatentes será sempre 1!

Isso faz me acreditar que a letra c é a resposta correta!

abs, Nico