importjava.util.Scanner;publicclassPrincipal{publicstaticvoidmain(String[]args){Pessoavpessoa[]=newPessoa[5];Pessoapessoa=newPessoa();Scannerin=newScanner(System.in);longra;Stringnome,sobrenome,data;for(inti=0;i<2;i++){System.out.println("PREENCHA OS DADOS");System.out.println("RA");ra=in.nextLong();System.out.println("NOME");nome=in.next();System.out.println("SOBRENOME");sobrenome=in.next();System.out.println("DATA");data=in.next();pessoa.criarPessoa(ra,nome,sobrenome,data);vpessoa[i]=pessoa;}for(inti=0;i<2;i++)vpessoa[i].imprimirPessoa();}}
na hora de imprimir, imprime sempre o ultimo dado cadastrado, ql meu erro ae?
Copiei seu código aqui e não houve qualquer tipo de problema, ele imprimiu as informações do array normal. Verifica se você não está enxergando somente o ultimo registro no console, role o console para cima e veja se não está lá.
T+
pmlm
O problema é que estás sempre a usar o mesmo objecto e não a criar um para cada posição do array.
O método criaPessoa também não tem razão de existir, este deveria ser sim um construtor.
Copiei seu código aqui e não houve qualquer tipo de problema, ele imprimiu as informações do array normal. Verifica se você não está enxergando somente o ultimo registro no console, role o console para cima e veja se não está lá.
T+
então cara eu testei e testei aparece sempre o ultimo mesmo!
D
Daniscuba
pmlm:
O problema é que estás sempre a usar o mesmo objecto e não a criar um para cada posição do array.
O método criaPessoa também não tem razão de existir, este deveria ser sim um construtor.
então eu tava pensando isso ae msm, ele cria somente 1, mas eu passei ele para o vetor, n sei pq ele n guardo!!
e a função do tipo Pessoa ta retornando oq?
gabrielmskate
Pelo que eu entendi, você está alterando o mesmo objeto… Parece que está mudando o primeiro objeto do array.
importjava.util.Scanner;publicclassPrincipal2{publicstaticvoidmain(String[]args){Pessoa2vpessoa[]=newPessoa2[5];Scannerin=newScanner(System.in);longra;Stringnome,sobrenome,data;for(inti=0;i<2;i++){System.out.println("PREENCHA OS DADOS");System.out.println("RA");ra=in.nextLong();System.out.println("NOME");nome=in.next();System.out.println("SOBRENOME");sobrenome=in.next();System.out.println("DATA");data=in.next();Pessoa2pessoa=newPessoa2(ra,nome,sobrenome,data);vpessoa[i]=pessoa;}for(inti=0;i<2;i++)vpessoa[i].imprimirPessoa();}}
gabrielmskate
Opa... já haviam respondido...
Mas só uma observação... Eu mudaria o método de imprimir para assim: