Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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






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

×