Ir ao conteúdo
  • Cadastre-se
joaoufms

Java Criando relacionamento entre objetos

Recommended Posts

Boa tarde galera, tenho um código com as classes abaixo, tenho um vetor de contas dentro da classe Pessoa, na classe principal eu tenho uma opção para criar conta, onde o usuário digita seu cpf e outros dados da conta, como posso fazer para relacionar a pessoa que tem o cpf que foi digitado com a conta e adicionar a conta no vetor?

 

Classe Principal:

import java.util.Scanner;


public class Principal {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int op;
        
        Banco banco = new Banco();

        do {

            System.out.println("1 - Cadastrar pessoa");
            System.out.println("2 - Criar conta");
            System.out.println("3 - Verificar dados pessoais");
            System.out.println("4 - Extrato da Conta");

            System.out.println("Escolha uma Opcao:");
            op = scan.nextInt();
            scan.nextLine();

            
            Pessoa p;
            Conta c;
            switch (op) {
                case 1:

                    System.out.println("Digite seu Nome: ");
                    String nome = scan.nextLine();
                    System.out.println("Digite sua Data de Nascimento: ");
                    String dtn = scan.nextLine();
                    System.out.println("Digite seu Sexo: ");
                    String sexo = scan.nextLine();
                    System.out.println("Digite seu CPF: ");
                    String cpf = scan.nextLine();

                    p = new Pessoa();

                    p.setNome(nome);
                    p.setDtn(dtn);
                    p.setSexo(sexo);
                    p.setCpf(cpf);

                    banco.addPessoa(p);
                    break;

                case 2:

                 System.out.println("Digite seu CPF: ");
                 String cpf = scan.nextLine();
                 System.out.println("Digite uma Senha para a conta: ");
                 int senha = scan.nextInt();
                 System.out.println("Digite o Numero da conta: ");
                 int numero  = scan.nextInt();
                 System.out.println("Digite o Saldo para conta: ");
                 double saldo = scan.nextDouble();
                 System.out.println("Digite a Agencia da conta: ");
                 int agencia = scan.nextInt();

                    break;

                case 3:
                   banco.infoPessoa();
                    
                    break;

                case 4:

                       banco.infoConta();

                default:
                    if (op == 0) {
                        System.out.println("Programa Encerrado");
                    } else {
                        System.out.println("Opcao Inválida");
                    }
                           break;
            }

        } while (0 != op);

    }

}

 

Classe Pessoa:

public class Pessoa {

    private String nome;
    private String dtn;
    private String sexo;
    private String cpf;
    private Conta [] contas =  new Conta[100];

    

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getDtn() {
        return dtn;
    }

    public void setDtn(String dtn) {
        this.dtn = dtn;
    }

    public String getSexo() {
        return sexo;
    }

    public void setSexo(String sexo) {
        this.sexo = sexo;
    }

    public String getCpf() {
        return cpf;
    }


    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

   /public Conta[] getContas(){
        return contas;
    }

    public void setContas(Conta[] con){
        this.contas = contas;
    }

    public String infoPessoa() {
        return "\nNome: " + nome +
                "\ndtn: " + dtn +
                "\nSexo: " + sexo + 
                "\nCPF: " + cpf+"\n";
    }
    
    

}

 

Classe Conta:

public class Conta {

    private double saldo;
    private int senha;
    private int numero;
    private int agencia;


    public double getSaldo() {
        return saldo;
    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }

    public int getSenha() {
        return senha;
    }

    public void setSenha(int senha) {
        this.senha = senha;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public int getAgencia() {
        return agencia;
    }

    public void setAgencia(int agencia) {
        this.agencia = agencia;
    }

    //public depositar(double valor){
        //this.saldo += valor;
   // }
    
    public String infoConta() {
        return "\nNumero da Conta: " + numero +
                "\nAgencia: " + agencia +
                "\nSaldo da Conta: " + saldo +"\n";
    }
    
    
}

 

Classe Banco:

Classe banco:
import java.util.Scanner;

public class Banco {

Scanner scan = new Scanner(System.in);
private int qtdP = 0;


private Pessoa[] pessoas = new Pessoa[100];



public int tamanhoPessoa() {
    return this.qtdP;
}


public void addPessoa(Pessoa c) {

    
    this.pessoas[qtdP] = c;
    qtdP++;
    System.out.print("Cadastro Realizado com Sucesso!\n\n");
}

public void infoPessoa() {

System.out.println("Digite o CPF para buscar: ");
String busca = scan.nextLine();

Pessoa buscaPessoa = null;

for (int i = 0; i < this.tamanhoPessoa(); i++) {
    Pessoa p = pessoas[i];
    if (p.getCpf().equals(busca)) {
        buscaPessoa = p;
        break;
    }else{
        buscaPessoa = null;
    }
}
if (buscaPessoa == null) {
    System.out.println("\nCliente não foi encontrado\n");
} else {
    System.out.println("\nInformações do Cliente:\n"+buscaPessoa.infoPessoa());

}
}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Observe que você está criando a Pessoa p e a Conta c dentro do loop do menu.

Recomendo tirar fora pois de outra forma você está reinicializando a variável a cada vez.

 

 

adicionado 6 minutos depois

Também é importante definir a relação entre os objetos.

 

Entendi que uma pessoa pode ter até 100 contas.

O CPF é um atributo original da pessoa e não da conta. Melhor usá-lo como identificador da pessoa, na classe pessoa e usá-lo para identificar o correntista, o dono da conta, na conta. Isso é mais parecido com o que acontece na vida real em bancos de dados para quando você for completar esse programa e gravar os dados de pessoas, contas, bancos.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×