Pessoal, estou fazendo um programa simples para ver se entendo um pouco sobre ArrayList, mas estou com algum problema lógico no código e uma dúvida lógica…
[b]* Como faço para chamar o menu inicial depois que o usuário digitou uma opção? … Gostaria de chamar o menu inicial depois de cadastrar as pessoas ou imprimir as mesmas.
* O problema esta na hora de inserir os dados no array, ele esta simplesmente sobrescrevendo a pessoa cadastrada anteriormente.
[/b]
Bom… este programa que estou fazendo se baseia simplesmente em pegar o “nome”,“idade” e a “data de nascimento” da pessoa cadastrada. O que eu queria é que o ArrayList colocasse o novo objeto no final ad lista.
Irei colocar as 4 classes do programa para vcs darem uma olhada…
[color=blue]Classe mãe “Pessoas”[/color]
public class Pessoas {
private String nome;
private int idade;
private String data_nasc;
public void setNome(String nome){
this.nome = nome;
}
public String getNome(){
return nome;
}
public void setIdade(int idade){
this.idade = idade;
}
public int getIdade(){
return idade;
}
public void setData_nasc(String data_nasc){
this.data_nasc = data_nasc;
}
public String getData_nasc(){
return data_nasc;
}
public Pessoas(String varNome, int varIdade, String varData_nasc){
this.nome = varNome;
this.idade = varIdade;
this.data_nasc = varData_nasc;
}
}
======================================================
[color=blue]Classe filha “Manipulação”[/color]
import java.util.ArrayList;
import java.util.Scanner;
public class Manipulacao extends Pessoas{
ArrayList<Manipulacao> array = new ArrayList<Manipulacao>();
Scanner s = new Scanner(System.in);
public Manipulacao(String nome, int idade, String data_nasc){
// construtor.
super(nome, idade, data_nasc);
}
public void manipulacao_dados(Manipulacao obj){
array.add(obj);
int cont = array.size(); // Pega a quantidade de pessoas inseridas.
System.out.println("Existe "+cont+" pessoa(s) cadastrada(s).");
}
public void imprime(){
int i = 0;
do{
if(array.size() >= 0){
System.out.println("Nome: "+array.get(i).getNome());
System.out.println("Idade: "+array.get(i).getIdade());
System.out.println("Data de nascimento: "+array.get(i).getData_nasc());
}else{
System.out.println("O array não possui nenhum dado.");
}
i++;
}while(i < array.size());
}
}
======================================================
[color=blue]Classe “Menu” [/color]
import java.util.Scanner;
public class Menu {
String nome, data;
int opcao;
Scanner s = new Scanner(System.in);
public int mostra_menu(){ // método de ativação do menu
while (opcao != 1 && opcao != 2 && opcao != 3){
System.out.println("**** Registro de Pessoas ****");
System.out.println("1 - Cadastrar");
System.out.println("2 - Imprimir");
System.out.println("3 - Sair");
System.out.print("Opcão: ");
opcao = s.nextInt();
}
return opcao;
}
}
======================================================
[color=blue]Classe “Main” [/color]
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String nome ,data, opcao = "";
int idade, op=0;
//Manipulacao obj = null;
Menu menu = new Menu(); // Obj da Classe Menu
Scanner s = new Scanner(System.in);
op = menu.mostra_menu();
switch(op){
case 1:
while(!opcao.equalsIgnoreCase("Não")){
Manipulacao obj = null;
System.out.print("Nome: ");
nome = s.next();s.nextLine();
System.out.print("Idade: ");
idade = s.nextInt();
System.out.print("Data de nascimento: ");
data = s.next();
//passando os dados coletados para o contrutor de "Manipulacao"
obj = new Manipulacao(nome, idade, data);
obj.manipulacao_dados(obj);
System.out.println("\n");
System.out.println("Deseja cadastrar mais alguma pessoa? Sim/Não");
System.out.print("Opcão: ");
opcao = s.next();
}
//obj.imprime();// só para ver se estava inserindo.
break;
case 2:
//obj.imprime();
break;
case 3:
System.out.print("Saindo....");
System.exit(0);
default:
System.out.println("Erro de Opção !!!!!!!");
System.exit(0);
}
}// fim while
}
…