Bom dia. Estou tomando um erro aqui. Pode me ajudar? Criei meu exercício com o usuário digitando os dados da pessoa. Só que na hora de consultar, o retorno veio sempre com os dados da última pessoa, não importa quantas eu faça, ele sempre preenche todas as posições com o último nome. Alguém pode me ajudar?
public class ExerciciosPessoa {
public static void main(String[] args) {
Pessoa pessoa = new Pessoa();
ArrayList<Pessoa> listaDePessoas = new ArrayList<>();
Scanner leitura = new Scanner(System.in);
int opcaoMenu = 0;
String menu = """
-----------------------------
1- Cadastrar Pessoa
2- Consultar Primeira Pessoa
3- Consultar Lista Completa
4- Sair
-----------------------------
""";
System.out.println(">>> Testes de Array - Classe Pessoa <<<");
while (opcaoMenu != 4) {
System.out.println(menu);
opcaoMenu = leitura.nextInt();
switch (opcaoMenu) {
case 1:
System.out.println("Digite o nome");
pessoa.setNome(leitura.next());
System.out.println("Digite a idade");
pessoa.setIdade(leitura.nextInt());
listaDePessoas.add(pessoa);
System.out.println(pessoa);
break;
case 2:
System.out.println("Imprimir primeira pessoa cadastrada");
System.out.println("Primeira pessoa cadastrada: " + listaDePessoas.get(0).toString());
break;
case 3:
System.out.println("Imprimir lista completa");
System.out.println(listaDePessoas);
System.out.println("Quantidade de registros: " + listaDePessoas.size());
break;
}
}
}
}
@Override
public String toString() {
return "Dados de Pessoa: Nome: " + nome +" Idade: " + idade;
}