Voltei ao projeto do bytebank e utilizei o IllegalArgumentException
no construtor para validar se os valores de agencia e numero são 0 ou menores, se sim, então será lançada a exceção. Também utilizei a notação @NotNull
para impedir valores nulos.
import org.jetbrains.annotations.NotNull;
public abstract class Conta {
protected double saldo;
private int agencia;
private int numero;
private Cliente titular;
private static int total = 0;
public Conta(@NotNull int agencia, int numero){
if(agencia < 1 | numero < 0) {
throw new IllegalArgumentException("Dado inválido");
}
Conta.total++;
System.out.println("O total de contas é " + Conta.total);
this.agencia = agencia;
this.numero = numero;
this.saldo = 0;
System.out.println("Estou criando uma conta " + this.numero);
}
public abstract void deposita(double valor);
public void saca(double valor) throws SaldoInsuficienteException {
if(this.saldo < valor) {
throw new SaldoInsuficienteException("");
}
this.saldo -= valor;
}
public void transfere(double valor, Conta destino) throws SaldoInsuficienteException {
this.saca(valor);
destino.deposita(valor);
}
public double getSaldo(){
return this.saldo;
}
public int getNumero(){
return this.numero;
}
public void setNumero(int numero){
if(numero <= 0) {
System.out.println("Nao pode valor menor igual a 0");
return;
}
this.numero = numero;
}
public int getAgenciaa(){
return this.agencia;
}
public void setAgenciaa(int agenciaa){
if(agenciaa <= 0) {
System.out.println("Nao pode valor menor igual a 0");
return;
}
this.agencia = agenciaa;
}
public void setTitular(Cliente titular){
this.titular = titular;
}
public Cliente getTitular(){
return this.titular;
}
public static int getTotal(){
return Conta.total;
}
}