1
resposta

Controle de bateria

package Relatorio.ControleNivelBateria;

public class Bateria {

    private int nivelBateria;
    final int BATERIA_FRACA = 20;
    final int BATERIA_CHEIA = 80;

    public int getNivelBateria() {
        return nivelBateria;
    }

    public void setNivelBateria(int nivelBateria) {
        if (nivelBateria <= BATERIA_FRACA) {
            System.out.println("Status: bateria fraca");

        } else if (nivelBateria >= BATERIA_CHEIA) {
            System.out.println("Status: bateria cheia");
        }
          else {
            System.out.println("Status: bateria Ok");
        }

        this.nivelBateria = nivelBateria;
    }

    @Override
    public String toString() {
        return "Nivel " + getNivelBateria() + "%";
    }
}


package Relatorio.ControleNivelBateria;

public class Principal {
    public static void main(String[] args) {

        Bateria bateria = new Bateria();

        bateria.setNivelBateria(79);
        System.out.println(bateria);
    }
}
1 resposta

Oi, Wanderson! Como vai?

Agradeço por compartilhar.

Achei bem interessante como você aplicou o encapsulamento usando o atributo privado e controlando o acesso com get e set. A forma como você definiu constantes para os limites de bateria também deixa o código mais organizado e fácil de manter.

Você pode usar um método separado pra retornar o status da bateria, em vez de imprimir direto no set. Isso melhora a reutilização do código.
Algo assim:


public String verificarStatus(int nivel) {
    if (nivel <= 20) {
        return "bateria fraca";
    } else if (nivel >= 80) {
        return "bateria cheia";
    } else {
        return "bateria ok";
    }
}

Esse código retorna o status como texto, permitindo usar essa informação em outros pontos do programa, não apenas imprimir no console.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!