ArrayList

Boa noite…
Gostaria de saber qual o problema que tem este código:

import java.util.ArrayList;

public class Principal {
	
	public static void main(String[] args) {
		Fisica pessoa = new Fisica();
		ArrayList<Fisica> apessoa = new ArrayList<Fisica>();
			
		pessoa.Inserir("Julio", "25", "Antonio", "Maria");
		apessoa.add(pessoa);
		
		pessoa.Inserir("Antonio", "3", "José", "Joana");
		apessoa.add(pessoa);
		
		pessoa.Inserir("Madalena", "25", "Jorge", "Sandra");
		apessoa.add(pessoa);
		
		pessoa.Inserir("Luciano", "45", "Manuel", "Maria");
		apessoa.add(pessoa);
		
		System.out.println(apessoa);
		
		//System.out.println(pessoa);
		
	}[/code]
Tenho uma arrayList do tipo Fisica().. Estou add as pessoas, mas ao imprimir sai a ultima pessoa repetidas vezes.
Exemplo: [Nome: Luciano Idade: 45 Pai: Manuel Mae: Maria, Nome: Luciano Idade: 45 Pai: Manuel Mae: Maria, Nome: Luciano Idade: 45 Pai: Manuel Mae: Maria, Nome: Luciano Idade: 45 Pai: Manuel Mae: Maria]

e tenho uma a classe Modelo que segue a baixo:
[code]package arrayList;

public class Fisica extends Pessoa{
	
	private String pai;
	private String mae;
	
	public String getPai() {
		return pai;
	} 
	
	public void setPai(String pai) {
		this.pai = pai;
	}
	
	public String getMae() {
		return mae;
	}
	
	public void setMae(String mae) {
		this.mae = mae;
	}
	
	public void Inserir(String nome, String idade, String pai, String mae){
		super.setNome(nome);
		super.setIdade(idade);
		this.pai = pai;
		this.mae = mae;
	}
	
	@Override
	public String toString() {
	
		return "Nome: "+ super.getNome()+" Idade: "+super.getIdade()+" Pai: "+getPai()+" Mae: "+ getMae();
	}

}

Tentei tirar o toString e coloquei no main assim System.out.println(apessoa.get(0).getNome()); e saiu o ultimo nome “Luciano” no exemplo era pra sair o nome “Julio” que esta na posição 0…

Se puderem me ajudar fico grato…

Voce está criando apenas um objeto pessoa e inserindo esse mesmo objeto várias vezes no ArrayList.
Como todos são o mesmo objeto, quando voce altera os atributos usando pessoa.Inserir(…), “todos” eles são alterados.

A lista fica assim: () -> (Julio) -> (Antonio, Antonio) -> (Madalena, Madalena, Madalena) -> (Luciano, Luciano, Luciano, Luciano).

O que voce precisa fazer é criar uma instancia de pessoa para cada pessoa que precisa adicionar a lista como voce ja faz uma vez na linha 7 ( Fisica pessoa = new Fisica(); ) e então setar os atributos dessa pessoa (que podem inclusive serem passados diretamente para o construtor Fisica pessoa = new Fisica(“Julio”, “25”, “Antonio”, “Maria”); )

Abs

Caro joaonlima, obrigado por responder…
Era exatamente isso.
Muito Obrigado.
Abraço!

[quote=newnovato]Caro joaonlima, obrigado por responder…
Era exatamente isso.
Muito Obrigado.
Abraço![/quote]

Coloque [RESOLVIDO] no tópico para manter o GUJ organizado e ajudar os demais! Abraços!