Escolar Documentos
Profissional Documentos
Cultura Documentos
import pessoa.Pessoa;
import java.util.List;
public Banco() {
clientes = new ArrayList<>();
}
import pessoa.Pessoa;
import java.util.List;
import banco.conta.Conta;
import pessoa.Pessoa;
import banco.conta.ContaPJ;
package main;
import banco.*;
import banco.conta.*;
import pessoa.Pessoa;
import java.util.List;
import java.util.Random;
/ / Exemplo:
Pessoa alice = new Pessoa("Alice", "1234", 1);
Itau itau = new Itau();
String numeroConta = itau.abrirConta(alice);
itau.depositar(alice.getConta(), 1000);
boolean pixResult = itau.enviarPix(alice, destino, 100);
// Continuar com outras operações e testes
}
}
gora, você tem a estrutura básica do sistema bancário com as classes principais
A
inovadoras. Você pode continuar adicionando mais lógica e testando suas
operações de acordo com os requisitos. Se você tiver alguma dúvida específica ou
precisar de mais assistência em alguma parte da implementação, fique à vontade
para perguntar.
import banco.*;
import banco.conta.*;
import pessoa.Pessoa;
import java.util.List;
try {
Pessoa alice = new Pessoa("Alice", "1234", 1);
assertNull("Conta da Alice deve ser nula", alice.getConta());
itau.depositar(alice.getConta(), 1000);
nubank.abrirConta(mara);
itau.sacar(alice.getConta(), 100);
lenio.listarInformacoes();
alice.listarInformacoes();
} catch (Exception e) {
System.out.println("Erro: " + e.getMessage());
}
import pessoa.Pessoa;
import java.util.ArrayList;
import java.util.List;
public Banco() {
clientes = new ArrayList<>();
}
Override
@
public List<Pessoa> obterClientes() {
return clientes;
}
Override
@
public float obterSaldo(Pessoa pessoa) {
if (pessoa.getConta() != null) {
return pessoa.getConta().getSaldo();
}
return 0.0f;
}
Java
import pessoa.Pessoa;
import banco.conta.Conta;
import banco.conta.ContaPF;
import banco.conta.ContaPJ;
Override
@
public String abrirConta(Pessoa pessoa) {
if (pessoa != null) {
String numeroConta = "Itau-" + (int) (Math.random() * 1000);
Conta conta;
if (pessoa.obterTipoPessoa().equals("PF")) {
conta = new ContaPF();
} else {
conta = new ContaPJ();
}
conta.setNumeroConta(numeroConta);
pessoa.setConta(conta);
lientes.add(pessoa);
c
return numeroConta;
}
return null;
}
Override
@
public boolean encerrarConta(Pessoa pessoa) {
if (clientes.contains(pessoa)) {
pessoa.setConta(null);
clientes.remove(pessoa);
return true;
}
return false;
}
}
import pessoa.Pessoa;
Override
@
public String abrirConta(Pessoa pessoa) {
if (pessoa != null) {
String numeroConta = "Nubank-" + (int) (Math.random() * 1000);
Conta conta;
if (pessoa.obterTipoPessoa().equals("PF")) {
conta = new ContaPF();
} else {
conta = new ContaPJ();
}
conta.setNumeroConta(numeroConta);
pessoa.setConta(conta);
clientes.add(pessoa);
return numeroConta;
}
return null;
}
Override
@
public boolean encerrarConta(Pessoa pessoa) {
if (clientes.contains(pessoa)) {
pessoa.setConta(null);
clientes.remove(pessoa);
return true;
}
return false;
}
}
public ContaPF() {
super(1);
}
Override
@
public String obterTipoConta() {
return "PF";
}
}
public ContaPJ() {
super(2);
}
Override
@
public String obterTipoConta() {
return "PJ";
}
}
try {
assertThrows(Exception.class, () -> new Pessoa("Erro", "1111", 3));
new Pessoa("Erro", "1111", 3);
} catch (Exception e) {
String msgErroEsperada = "Tipo Pessoa deve ser 1 ou 2";
String msgErroObtida = e.getMessage();
assertEquals("Mensagem de validação do tipo de pessoa incorreta",
msgErroEsperada, msgErroObtida);
System.out.println(String.format("Erro: %s\n", e.getMessage()));
}
itau.depositar(alice.getConta(), 1000);
assertEquals("Erro Saldo Alice após depósito de 1000",
alice.getConta().getSaldo(), 1000, 0.0);
ssertFalse("O envio não deve ser concluído, pois o Lenio não tem conta",
a
itau.enviarPix(alice, lenio, 100));
assertNull("Lenio não tem conta", lenio.getConta());
ubank.abrirConta(mara);
n
assertEquals("Tipo conta deve ser PJ", mara.getConta().obterTipoConta(), "PJ");
assertInstanceOf(ContaPJ.class, mara.getConta());
itau.sacar(alice.getConta(), 100);
assertEquals("Erro Saldo Alice após saque de 100", alice.getConta().getSaldo(),
00, 0.0);
9
ssertTrue("O envio do Pix deveria ter sido feito", itau.enviarPix(alice, lenio, 50));
a
assertEquals("Erro Saldo Alice após envio Pix de 50", alice.getConta().getSaldo(),
850, 0.0);
assertEquals("Erro Saldo Lenio após receber Pix de 50",
lenio.getConta().getSaldo(), 50, 0.0);
lenio.listarInformacoes();
alice.listarInformacoes();
rograma.exibirSaldo(itau);
p
programa.exibirSaldo(nubank);
}