Um programador criou uma classe para representar os funcionários da empresa. Porém ele cometeu alguns erros. Encontre e corrija.
Passo 1
Certo pessoal, essa é mais uma daquelas questões de encontrar erros no código. Então vamos olhar com atenção, linha-por-linha! Lets bora!
Das linhas 01 a 06 temos apenas os cabeçalhos e o início da classe. Até aqui está tudo certo
Agora observe a linha 07 e 08. Pelo comentário deixado pelo programador, podemos perceber que ele quer contar a quantidade de objetos criados. Para fazer esse tipo de contagem, é necessário que este atributo seja estático, pois só dessa forma é possível criar um atributo que seja compartilhado entre todos os objetos, permitindo assim que cada objeto altere o valor da contagem. Além disso, se você olhar pra linha 22, vai ver que de fato, o programador queria que esse fosse um membro estático.
Então o nosso primeiro erro está na linha 08. Precisão adicionar a palavra chave para informar ao compilador que a variável é estática. Outra coisa importante é que os atributos estáticos não podem ser inicializados dentro da declaração da classe.
Então vamos corrigir
Passo 2
Seguindo em frente vemos o construtor da classe, que recebe os valores dos atributos e incrementa o valor de contagem . Aqui não temos nenhum erro.
Porém, note o seguinte problema: A variável estática é privada. E esse programador não criou nenhum método para poder acessar essa variável.
Precisamos criar um método getter para acessar o valor contido em . Como a variável é estática, o ideal é a gente criar um método getter que seja estático também!
Então, antes de fechar a classe, vamos criar um método estático público chamado
Por enquanto vamos criar só o protótipo, e depois vamos adicionar os detalhes.
Passo 3
Continuando, nos deparamos com código das linhas 22 e 23. Aqui o objeto é inicializar o valor da variável estática.
Mas note o erro, a palavra-chave só deve ser usada quando declaramos o atributo dentro da classe
Corrigindo, fica dessa maneira:
Passo 4
Ok, antes de analisar a vamos escrever o código do método estático . Tudo que precisamos fazer aqui é retornar o valor contido no atributo , então vamos ter o seguinte código:
Passo 5
Pra finalizar a questão, vamos analisar a . Aqui ele cria quatro objetos para representar quatro funcionários.
Depois ele utiliza a própria classe para imprimir o valor do atributo . Contudo, esse é um atributo privado e por isso não é possível acessá-lo diretamente!
Por sorte, nós percebemos isso antes e já temos um método getter criado! Então para corrigir basta a gente usar o método getter: