Exercício: Modelagem Sistema Banco
14 de julho de 2025Less than 1 minute
Exercício: Modelagem Sistema Banco
Execute o código abaixo para criar um sistema bancário simples utilizando conceitos de Orientação a Objetos, como classes, atributos, métodos e associações.
class Conta {
int numero;
String cliente;
double saldo;
double limite;
Conta(int numero, String cliente) {
if (numero < 0) {
this.numero = 999;
} else {
this.numero = numero;
}
setCliente(cliente);
this.saldo = 0;
this.limite = 100;
}
Conta(int numero, String cliente, double saldo, double limite) {
this(numero, cliente);
this.saldo = saldo;
this.limite = limite;
}
void setCliente(String cliente) {
if (cliente != null && !cliente.isEmpty() && !cliente.isBlank()) {
this.cliente = cliente;
}else{
this.cliente = "GERENTE";
}
}
boolean saca(double quantidade) {// método
if (this.saldo < quantidade) {
return false;
} else {
this.saldo -= quantidade;
return true;
}
}
void deposita(double quantidade) {// método
this.saldo += quantidade;
}
boolean transferir(Conta destino, double valor) {
if (this.saca(valor)) {
destino.deposita(valor);
return true;
}
return false;
}
double getSaldo() {
return saldo;
}
int getNumero() {
return numero;
}
@Override
public String toString() {
return "Conta [numero=" + numero + ", cliente=" + cliente + ", saldo=" + saldo + "]";
}
}
import java.util.ArrayList;
class Agencia {
int numero;
ArrayList<Conta> contas;
Agencia(int numero) {
this.numero = numero;
contas = new ArrayList<>();
}
int getNumero() {
return numero;
}
int criarConta(String cliente){
//calcula o numero da nova conta
int numeroConta = numero*100;
numeroConta+= contas.size();
//instancia nova conta com o numero calculado
Conta novConta = new Conta(numeroConta, cliente);
//guardo nova conta na minha lista de contas
contas.add(novConta);
//devolvo a conta para quem pediu
return novConta.getNumero();
}
int totalContas() {
return contas.size();
}
double totalDinheiro() {
double total = 0;
for (int i = 0; i < contas.size(); i++) {
total+= contas.get(i).getSaldo();
}
return total;
}
Conta getConta(int numeroConta) {
// buscar a conta que tem o numero igual a numeroConta
for (int i = 0; i < contas.size(); i++) {
Conta c = contas.get(i);
if(c.getNumero() == numeroConta){
return c;
}
}
return null;
}
}
class App {
public static void main(String[] args) throws Exception {
Agencia ag1 = new Agencia(2);
int numeroConta1 = ag1.criarConta("Leandro");
int numeroConta2 = ag1.criarConta("Isabela");
Conta conta1 = ag1.getConta(numeroConta1);
Conta conta2 = ag1.getConta(numeroConta2);
//Somente mesmo pacote pode chamar o new
//Conta conta3 = new Conta(0, null);// erro
conta1.deposita(100.0);
conta2.deposita(10.0);
conta1.transferir(conta2, 50);
System.out.println(conta1.toString());
System.out.println(conta2);
System.out.println("ag1.totalContas():"+ag1.totalContas());
System.out.println("ag1.totalDinheiro():"+ag1.totalDinheiro());
}
}
após a execução, você deve realizar a entrega da tarefa (print da execução) no link abaixo:
para a entrega do print, você pode utilizar você pode usar a ferramenta de captura de tela, salvar a imagem e enviar o arquivo no link acima.
clique na opção de upload an existing file e selecione o arquivo que você salvou.
