Ir ao conteúdo
  • Cadastre-se

Java Agenda contatos retornando null ao buscar número de telefone


Visitante

Posts recomendados

package model;

import java.util.ArrayList;
import java.util.List;

public class Agenda {

    List<Pessoa> pessoas = new ArrayList<Pessoa>();

    public void adicionarPessoa(Pessoa pessoa) {
        pessoas.add(pessoa);
    }

    public void excluirPessoa(Pessoa pessoa) {
        pessoas.remove(pessoa);
    }

    public Pessoa buscarNome(String nome) {
        for (Pessoa pessoa : pessoas) {
            if (pessoa.getNome().equals(nome))
                return pessoa;
        }
        return null;
    }

    List<Telefone> telefones = new ArrayList<Telefone>();

    public void adicionarTelefone(Telefone telefone) {
        telefones.add(telefone);
    }

    public void excluirTelefone(Telefone telefone) {
        pessoas.remove(telefone);
    }

    public Telefone buscarTelefone(String tel) {
        for (Telefone telefone : telefones) {
            if (telefone.getTel().equals(telefone))
                return telefone;
        }
        return null;
    }

    public String contatoNaAgenda() {
        return "Agenda{" +
                "pessoas=" + pessoas +
                ", telefones=" + telefones +
                '}';
    }
}



//-----------------------------



package model;

public class Endereco {

    private String logradouro;
    private int complemento;
    private String bairro;
    private int CEP;
    private String cidade;
    private String estado;
    private String pais;

    public Endereco(String logradouro) {
        this.logradouro = logradouro;
    }

    public String getLogradouro() {
        return logradouro;
    }

    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    public int getComplemento() {
        return complemento;
    }

    public void setComplemento(int complemento) {
        this.complemento = complemento;
    }

    public String gzzzetBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public int getCEP() {
        return CEP;
    }

    public void setCEP(int CEP) {
        this.CEP = CEP;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getPais() {
        return pais;
    }

    public void setPais(String pais) {
        this.pais = pais;
    }

    @Override
    public String toString() {
        return "Endereco{" +
                "logradouro='" + logradouro + '\'' +
                ", complemento=" + complemento +
                ", bairro='" + bairro + '\'' +
                ", CEP=" + CEP +
                ", cidade='" + cidade + '\'' +
                ", estado='" + estado + '\'' +
                ", pais='" + pais + '\'' +
                '}';
    }
}



//-----------------------------



package model;

public class EnderecoComercial extends Endereco{


    public EnderecoComercial(String logradouro) {
        super(logradouro);
    }
}



//-----------------------------



package model;

public class EnderecoResidencial extends Endereco {

    private String pontoReferencia;

    public EnderecoResidencial(String logradouro) {
        super(logradouro);
    }

    public String getPontoReferencia() {
        return pontoReferencia;
    }

    public void setPontoReferencia(String pontoReferencia) {
        this.pontoReferencia = pontoReferencia;

    }
}



//-----------------------------



package model;

import java.time.LocalDate;

public class Pessoa {

    private String nome;
    private Telefone tel;
    private String email1;
    private String email2;
    private LocalDate dataDeAniversario;
    private Endereco endereco;

    public Pessoa(String nome, Telefone tel, Endereco endereco) {
        this.nome = nome;
        this.tel = tel;
        this.endereco = endereco;
    }

    public String getNome() {
        return nome;
    }

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

    public Telefone getTel() {
        return tel;
    }

    public void setTel(Telefone tel) {
        this.tel = tel;
    }

    public String getEmail1() {
        return email1;
    }

    public void setEmail1(String email1) {
        this.email1 = email1;
    }

    public String getEmail2() {
        return email2;
    }

    public void setEmail2(String email2) {
        this.email2 = email2;
    }

    public LocalDate getDataDeAniversario() {
        return dataDeAniversario;
    }

    public void setDataDeAniversario(LocalDate dataDeAniversario) {
        this.dataDeAniversario = dataDeAniversario;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

    @Override
    public String toString() {
        return "Pessoa{" +
                "nome='" + nome + '\'' +
                ", tel=" + tel +
                ", emails='" + email1 + '\'' +
                ", dataDeAniversario=" + dataDeAniversario +
                ", endereco=" + endereco +
                '}';
    }
}



//-----------------------------



package model;

public class Telefone {

    private String tel;

    public Telefone(String tel) {
        this.tel = tel;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    @Override
    public String toString() {
        return "Telefone{" +
                "tel='" + tel + '\'' +
                '}';
    }
}



//-----------------------------



package model;

import java.util.ArrayList;
import java.util.List;

public class Principal {

    public static void main(String[] args) {

        Agenda agenda = new Agenda();

        //dados
        Endereco end1 = new Endereco("Logradouro 1");
        Telefone tel1 = new Telefone("1");
        Pessoa p1 = new Pessoa("P1", tel1, end1);

        Endereco end2 = new Endereco("Logradouro 2");
        Telefone tel2 = new Telefone("2");
        Pessoa p2 = new Pessoa("P2", tel2, end2);

        //adiciona telefone
        agenda.adicionarTelefone(tel1);
        agenda.adicionarTelefone(tel2);

        //adiciona pessoa
        agenda.adicionarPessoa(p1);
        agenda.adicionarPessoa(p2);

        //print para verificação dos dados do objeto
        System.out.println("inseridos com sucesso" + "\n" + agenda.contatoNaAgenda());

        //exclusão pessoa
        agenda.excluirPessoa(p1);

        //print para verificação dos dados após exclusão
        System.out.println("excluído com sucesso" + "\n" + agenda.contatoNaAgenda());

        //buscar pessoa
        Pessoa resultadoBuscaPessoa = agenda.buscarNome("P2");
        System.out.println("achou a pessoa com sucesso" + "\n" + resultadoBuscaPessoa);

        //buscar telefone
        Telefone resultadoBuscaTelefone = agenda.buscarTelefone("2");
        System.out.println("achou o número com sucesso" + "\n" + resultadoBuscaTelefone);
    }
}

Olá! 

 

Buscar pessoa está funcionando, usei a mesma ideia de código para buscar o número de telefone, porém, sempre retrona null. o que pode ser?

 

abraço!

Link para o comentário
Compartilhar em outros sites

Aqui está o seu problema:

if (telefone.getTel().equals(telefone))

Ao invés de estar comparando com o parâmetro do método, você está comparando com o próprio objeto, o que é uma coisa válida em Java já que o método equals aceita qualquer tipo de objeto.

 

Eu acho que vocẽ poderia melhorar os nomes dessas variáveis para evitar este tipo de problema no futuro.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!