O código abaixo é de uma classe chamada combatente, com seus atributos e métodos.
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.
A saída no console para a execução da aplicação acima é:
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:
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;