Olá pessoal, primeiro POST!
To com uma dúvida aqui que nao consigo achar solucao… acredito que pra voces que manjam mais, é só bater o olho que vao conseguir resolver!
Eh o seguinte…
Eu tenho a classe Pessoa, que possui aqueles 2 atributos ali em baixo (idade e nome). Criei 4 métodos básicos, que simplesmente setam ou retornam esses valores, como voces podem ver abaixo:
public class Pessoa {
int idade;
String nome;
public void SetIdade(int ida)
{
this.idade = ida;
}
public void setNome(String nom)
{
this.nome = nom;
}
public int getIdade()
{
return this.idade;
}
public String getNome()
{
return this.nome;
}
}
Agora eu tenho outra classe, chamada PreenchePessoa. Tudo que ela faz é instanciar a classe Pessoa, preencher ela com dados e jogar dentro de um vetor. É justamente aqui que vem a dúvida… observem o código… notem que eu inseri Pessoa duas vezes dentro do vetor… na primeira insercao eu inseri com o nome “Fabio” e idade “18”… na segunda insercao eu soh mudei a idade e inseri denovo…
Agora quando eu mando imprimir o conteúdo do vetor (lendo dele o objeto Pessoa e retornando os dados) a idade SEMPRE retorna 20… ou seja… a ultima idade que eu inseri… eu queria saber porque isso está ocorrendo. Eu ja tentei inserrir 20 idades diferentes, mas no fim das contas todos os elementos do vetor ficam com a MESMA idade… como se ele tivesse inserindo sempre o mesmo objeto ignorando os outros “setIdade” que eu passei.
Alguem pode me ajudar???
Mto obrigado!!!
import java.util.Vector;
public class PreenchePessoa {
public Vector vet;
Pessoa p;
public void CriaPessoa()
{
vet = new Vector();
p = new Pessoa();
p.setNome("Fabio");
p.SetIdade(18);
vet.addElement(p);
p.SetIdade(20);
vet.addElement(p);
Pessoa p2 = new Pessoa();
for (int i=0; i<vet.size(); i++)
{
p2 = (Pessoa)vet.get(i);
System.out.println(p2.getIdade());
}
}
}
