Olá galera estou tendo um problema para lógica de exclusão. Meu programa no caso, faz o cadastro de Pessoas e Contas, onde dentro de Pessoa eu tenho um ArrayList de Contas.
Bom, meu professor pediu para se criar DAO’s,usar CRUD dentro das DAOS e separar na ideia de MVC(bem básico), então criei os DAO’s de Pessoa e Conta, onde meu problema agora é a exclusão. Como expliquei anteriormente, estou com array dentro de contas em pessoa. Para excluir uma pessoa eu tenho que excluir primeiro as contas desta pessoa e em seguida excluir a pessoa, mas não estou conseguindo nem mesmo excluir a pessoa, de que maneira posso fazer isso?
Classe Pessoa:
package b2.Model;
import java.util.ArrayList;
import java.io.Serializable;
/**
*
* @author João Gabriel
*/
public class Pessoa implements Serializable {
private String nome;
private String dtn;
private String sexo;
private String cpf;
private ArrayList<Conta> contas = new ArrayList<>();
/**
* @return the nome
*/
public String getNome() {
return nome;
}
/**
* @param nome the nome to set
*/
public void setNome(String nome) {
this.nome = nome;
}
/**
* @return the dtn
*/
public String getDtn() {
return dtn;
}
/**
* @param dtn the dtn to set
*/
public void setDtn(String dtn) {
this.dtn = dtn;
}
/**
* @return the sexo
*/
public String getSexo() {
return sexo;
}
/**
* @param sexo the sexo to set
*/
public void setSexo(String sexo) {
this.sexo = sexo;
}
/**
* @return the cpf
*/
public String getCpf() {
return cpf;
}
/**
* @param cpf the cpf to set
*/
public void setCpf(String cpf) {
this.cpf = cpf;
}
/**
* @return the contas
*/
public ArrayList<Conta> getContas() {
return contas;
}
/**
* @param contas the contas to set
*/
public void setContas(Conta contas) {
this.contas.add(contas);
}
public void excluirContas() {
this.contas.remove(getContas());
}
@Override
public String toString() {
return "\nNome: " + nome
+ "\nData de Nascimento: " + dtn
+ "\nSexo: " + sexo
+ "\nCPF: " + cpf;
}
public String infoConta() {
return "\nNome do Cliente:" + nome +
"\n"+ contas;
}
}
PessoaDAO:
package b2.Controle;
import b2.Model.Pessoa;
import java.util.ArrayList;
import java.util.Scanner;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
/**
*
* @author AspireV5
*/
public class PessoaDAO {
/**
* @return the list
*/
Scanner scan = new Scanner(System.in, "latin1");
private ArrayList<Pessoa> list = new ArrayList<>();
Pessoa buscaPessoa = null;
public void addPessoa() {
int i = 0;
Pessoa person = new Pessoa();
System.out.println("Digite seu Nome: ");
String nome = scan.nextLine();
person.setNome(nome);
System.out.println("Digite sua Data de Nascimento: ");
String dtn = scan.nextLine();
person.setDtn(dtn);
System.out.println("Escolha M para Masculino ou F para Feminino: ");
String sexo = scan.nextLine();
if (sexo.equals("M") || sexo.equals("m")) {
person.setSexo("Masculino");
} else if (sexo.equals("F") || sexo.equals("f")) {
person.setSexo("Feminino");
}
System.out.println("Digite seu CPF: ");
String cpf = scan.nextLine();
for (Pessoa pe : list) {
if (cpf.equals(pe.getCpf())) {
i++;
}
}
if (i == 0) {
person.setCpf(cpf);
list.add(person);
System.out.println("\nCadastro realizado com Sucesso!");
System.out.println("\n");
} else {
System.out.println("\nCPF já Cadastrado!");
}
}
public void atualizarPessoa() {
System.out.println("Digite o CPF para buscar: ");
String busca = scan.nextLine();
for (Pessoa pessoa : list) {
if (pessoa.getCpf().equals(busca)) {
buscaPessoa = pessoa;
break;
} else {
buscaPessoa = null;
}
}
if (buscaPessoa == null) {
System.out.println("\nCliente não encontrado!");
} else {
System.out.println("Digite um Novo Nome");
String nome = scan.nextLine();
System.out.println("Digite um Novo CPF");
String cpf = scan.nextLine();
System.out.println("Digite uma Nova Data de Nascimento: ");
String dtn = scan.nextLine();
buscaPessoa.setNome(nome);
buscaPessoa.setCpf(cpf);
buscaPessoa.setDtn(dtn);
System.out.println("Cadastro atualizado com sucesso!");
}
}
public void removerPessoa() {
System.out.println("Digite o CPF para buscar: ");
String busca = scan.nextLine();
for (Pessoa pessoa : list) {
if (pessoa.getCpf().equals(busca)) {
buscaPessoa.excluirContas();
list.remove(pessoa);
break;
} else {
buscaPessoa = null;
}
}
}
public void buscarPessoa() {
System.out.println("Digite o CPF para buscar: ");
String busca = scan.nextLine();
for (Pessoa pessoa : list) {
if (pessoa.getCpf().equals(busca)) {
buscaPessoa = pessoa;
break;
} else {
buscaPessoa = null;
}
}
if (buscaPessoa == null) {
System.out.println("\nCliente não encontrado!");
} else {
System.out.println("\nInformações do Cliente:" + (buscaPessoa));
}
}
public Pessoa getPessoa() {
System.out.println("Digite o CPF para buscar: ");
String busca = scan.nextLine();
for (Pessoa pessoa : list) {
if (pessoa.getCpf().equals(busca)) {
buscaPessoa = pessoa;
break;
} else {
buscaPessoa = null;
}
}
if (buscaPessoa == null) {
return null;
} else {
return buscaPessoa;
}
}
public void verContas() {
System.out.println("Digite o CPF para buscar: ");
String busca = scan.nextLine();
for (Pessoa pessoa : list) {
if (pessoa.getCpf().equals(busca)) {
buscaPessoa = pessoa;
break;
} else {
buscaPessoa = null;
}
}
if (buscaPessoa == null) {
System.out.println("\nCliente não encontrado!");
} else {
System.out.println("\nInformaçõess da Conta: " + buscaPessoa.infoConta().replace("[", "").replace("]", ""));
}
}
}