package br.com.nadson.desafiosc8.modelo;
public class Bateria {
private final int capacidade = 100;
private int nivelCarga;
public Bateria() {
this.nivelCarga = 0;
}
public void carregar(int quantidade) {
if (quantidade < 0) {
throw new IllegalArgumentException("Quantidade de carga inválida: " + quantidade);
}
setNivelDeCarga(nivelCarga + quantidade);
}
public void usar(int quantidade) {
if (quantidade < 0) {
throw new IllegalArgumentException("Quantidade de uso inválida: " + quantidade);
}
setNivelDeCarga(nivelCarga - quantidade);
}
public void setNivelDeCarga(int valor) {
if (valor < 0) {
System.out.println("Valor inválido (" + valor + "). Nível de carga não pode ser negativo. Ajustado para 0.");
this.nivelCarga = 0;
} else if (valor > capacidade) {
System.out.println("Valor inválido (" + valor + "). Nível de carga não pode ultrapassar " + capacidade + ". Ajustado para 100.");
this.nivelCarga = capacidade;
} else {
this.nivelCarga = valor;
}
}
public NivelCarga mostrarNivelDeCarga() {
if (nivelCarga <= 30) {
return NivelCarga.BAIXO;
} else if (nivelCarga <= 70) {
return NivelCarga.MEDIO;
} else {
return NivelCarga.ALTO;
}
}
@Override
public String toString() {
return "Bateria [capacidade=" + capacidade + "mAh, nivelCarga=" + nivelCarga + "mAh, nivel=" + mostrarNivelDeCarga() + "]";
}
public enum NivelCarga {
BAIXO, MEDIO, ALTO
}
}
package br.com.nadson.desafiosc8.principal;
import br.com.nadson.desafiosc8.modelo.Bateria;
public class ControleDoNivelDeBateria {
public static void main(String[] args) {
Bateria bateria1 = new Bateria();
bateria1.setNivelDeCarga(50);
bateria1.carregar(30);
System.out.println("Bateria 1: " + bateria1.mostrarNivelDeCarga());
System.out.println(bateria1);
System.out.println("----------------------------");
Bateria bateria2 = new Bateria();
bateria2.setNivelDeCarga(80);
bateria2.usar(40);
System.out.println("Bateria 2: " + bateria2.mostrarNivelDeCarga());
System.out.println(bateria2);
System.out.println("----------------------------");
Bateria bateria3 = new Bateria();
bateria3.setNivelDeCarga(200);
System.out.println("Bateria 3: " + bateria3.mostrarNivelDeCarga());
System.out.println(bateria3);
System.out.println("----------------------------");
Bateria bateria4 = new Bateria();
bateria4.setNivelDeCarga(-20);
System.out.println("Bateria 4: " + bateria4.mostrarNivelDeCarga());
System.out.println(bateria4);
}
}