Prada 1 Denunciar post Postado Fevereiro 28, 2015 Galera preciso realizar a seguinte atividade: "Considere uma aplicação para armazenar os seguintes dados de uma pessoa em uma agenda de endereços: nome, endereço e telefone. Especifique um TAD para armazenar os dados das pessoas e as operações necessárias para inserir, consultar e excluir os dados das pessoas." Bom, preciso criar uma classe que registre um usuário e realize operações como consultar registro e exclusão, bom, sou leigo em java mas consegui gravar os dados em um ArrayList, entretanto sempre que registro um usuário novo, o anterior é sobrescrito, armazenando apenas o último cadastrado. Abaixo está o código, dividido em classe Main, Pessoa e Operações. Quero saber o porque está sobrescrevendo e se o código em geral está de acordo com o enunciado da questão. Agradeço a todos! Classe Main: public class exercicio { public static void main(String[] args) { Scanner input = new Scanner(System.in); Pessoa usuario = new Pessoa(); Operacoes acao = new Operacoes(); int op; do { System.out.println("[1] Inserir"); System.out.println("[2] Consultar"); System.out.println("[3] Remover"); System.out.println("[4] Sair"); System.out.print("Opção desejada: "); op = input.nextInt(); switch (op) { case 1: input.nextLine(); System.out.print("Nome: "); usuario.setNome(input.nextLine()); System.out.print("Endereço: "); usuario.setEndereco(input.nextLine()); System.out.print("Telefone: "); usuario.setTelefone(input.nextLine()); acao.inserePessoa(usuario); System.out.println(usuario); break; case 2: acao.consultaPessoa(); break; case 3: break; } } while (op != 4); } } Classe Pessoa: package TAD02; public class Pessoa { String nome; String endereco; String telefone; public Pessoa() { } public Pessoa(String nome, String endereco, String telefone) { this.nome = nome; this.endereco = endereco; this.telefone = telefone; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEndereco() { return endereco; } public void setEndereco(String endereco) { this.endereco = endereco; } public String getTelefone() { return telefone; } public void setTelefone(String telefone) { this.telefone = telefone; } @Override public String toString() { return "nome=" + nome + ", endereco=" + endereco + ", telefone=" + telefone; } } Classe Operações: package TAD02; import java.util.ArrayList; public class Operacoes extends Pessoa { ArrayList<Pessoa> listaPessoa = new ArrayList<>(); public void inserePessoa(Object usuario) { listaPessoa.add((Pessoa) usuario); } public String consultaPessoa() { for (Pessoa c: listaPessoa) { System.out.println(listaPessoa.get(0)); } return "oi"; } } Compartilhar este post Link para o post Compartilhar em outros sites
Dan Borges 26 Denunciar post Postado Fevereiro 28, 2015 Eu não sei muito bem Java, mas, reparei algo em seu código. Nessa parte, não seria assim: ArrayList<Pessoa> listaPessoa = new ArrayList<Pessoa>(); E utilizando somente esse get(0), vc não estaria retornando o primeiro index? Não deveria ser algo como for (Pessoa c: listaPessoa) { System.out.println(listaPessoa.get(c)); Compartilhar este post Link para o post Compartilhar em outros sites