Um programador está desenvolvendo um jogo online. Em determinado momento ele criou uma classe chamada que representa os inimigos do jogo. Cada objeto tem um nome, um valor de força e um indicador de vida, ambos inteiros que variam de 0 a 100.
Neste jogo podem existir no máximo 50 monstros de cada vez. Assim que um monstro é criado ou morto a quantidade de monstros deve ser atualizada.
Passo 1
Beleza pessoal, vamos nessa!
A questão está pedindo pra gente criar uma classe com um número máximo de objetos. Ou seja, vamos precisar contabilizar quantos objetos foram criados, quando o numero de objetos for maior que este máximo comportamento da classe vai mudar!
Vamos começar com o cabeçalho do código.
E vamos também criar uma constante global que contem o número máximo permitido de monstros.
Passo 2
Vamos desenvolver a estrutura da classe.
Vamos declarar a classe
E como atributos privados vamos declarar a string e os inteiros e .
Vamos mudar para o encapsulamento público. Aqui vamos declarar o atributo estático inteiro . Vai ser esse o atributo responsável por efetuar a contagem de monstros.
E em seguida vamos declarar os métodos da classe. Vamos precisar construtor que vai inicializar os três atributos da classe, e que vai aumentar a contagem de a cada novo objeto criado.
E também de uma função que vai diminuir a contagem de monstros sempre que um inimigo for derrotado.
Prontinho! A estrutura geral da classe está feita. Vamos agora desenvolver os detalhes.
Passo 3
A primeira coisa a fazer é determinar o valor inicial do atributo estático . Pra isso a gente chama o atributo fora da classe e inicializa:
Show!
Passo 4
Agora vamos desenvolver os métodos. O primeiro é o construtor, que vai receber e inicializar os atributos da classe. Para facilitar o processo de criar objetos, vamos colocar valores padronizados para os parâmetros do construtor.
Nós também temos que atualizar a contagem de monstros. Um novo monstro foi criado, então o valor de aumenta mais um:
E o construtor ainda não acabou! Aqui a gente tem que lembrar que a quantidade máxima de monstros é . E o que impede a existência ? Até agora, nada! Então vamos adicionar aqui uma condição para eliminar automaticamente os monstros excedentes.
Para isso vamos usar um que quando o número de monstros passar do máximo, automaticamente o método vai ser executado, eliminando o monstro extra no momento da criação!
Passo 5
Agora temos que desenvolver o método . Um monstro morre quando sua vida chega a zero. Então o objetivo desse método será setar a do monstro para , e em seguida atualizar a contagem de monstros em menos um.
Pro jogo ficar mais dinâmico, vamos adicionar também uma mensagem informando que o monstro foi derrotado.
Prontinho! A classe e seus métodos estão concluídos!
Passo 6
Show de bola, agora vamos testar essa classe.
Primeiro, vamos exibir a quantidade de monstros inicial. Esse valor tem de ser zero.
Em seguida, vamos criar a quantidade máxima de monstros permitida, para testar se a contagem está ocorrendo como deveria, e exibimos a nova quantidade de monstros.
E depois precisamos conferir se o limitador de monstros funciona. Então vamos criar mais um objeto da classe e ver o que acontece quando o atributo
Agora vamos rodar o programa e ver o resultado:
Viu que legal? A quantidade de monstros foi contada corretamente! E assim que um monstro excedente foi criado, automaticamente ele foi eliminado do jogo.