Oi, Antonio. Tudo bem com você?
Seu exercício já está utilizando o encapsulamento de forma adequada ao manter o atributo nivel como private e permitir sua alteração por meio do método setNivel(). A validação para aceitar somente valores entre 0 e 100 também está presente. Tem apenas um detalhe na condição responsável por identificar a bateria cheia: a atividade define que o status deve ser “Bateria cheia” a partir de 80%, mas no código foi utilizado nivel >= 79. Dessa forma, quando o nível for exatamente 79, ele poderá cair nessa condição. Como o intervalo de 21% a 79% já está contemplado no else if anterior, nesse caso específico o resultado continua sendo “Bateria OK”, mas deixar a regra como nivel >= 80 representa melhor o que foi solicitado.
Outro ponto interessante é o retorno do setNivel(). Como o objetivo principal desse método é definir o nível, ele poderia ser void, já que o valor não está sendo utilizado na Principal. Além disso, quando o valor informado estiver fora do intervalo de 0 a 100, atualmente o nível não é alterado, mas ainda assim o método continua avaliando o status usando o valor inválido. Por exemplo, se você chamar setNivel(150), nenhuma atribuição acontece, mas as condições ainda serão avaliadas.
Você poderia testar valores como 10, 20, 21, 79, 80, 100 e também 101 para observar como cada limite se comporta. O que você acha que deveria acontecer com o status quando alguém tentar definir um nível como -10 ou 150?
Parabéns pelo exercício, Antonio. A estrutura da classe está bem alinhada com a proposta de encapsulamento e você já aplicou uma validação importante no acesso ao atributo. Continue testando os valores de limite, porque eles ajudam bastante a conferir se as condições estão cobrindo exatamente as regras da atividade. O fórum está à disposição.
Para saber mais:
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!