O lance é que tenho a classe “Pessoa” e a classe “Familia” para armazenar as pessoas de uma determinada familia, aqui vão elas:
Classe pessoa…
[code]public class Pessoa {
private String nome;
private int idade;
private Boolean mae;
private Boolean pai;
public Pessoa(String nome, int idade, Boolean pai, Boolean mae) {
this.nome = nome;
this.idade = idade;
this.mae = mae;
this.pai = pai;
}
public String getNome() {
return nome;
}
public int getIdade() {
return idade;
}
public Boolean getMae() {
return mae;
}
public Boolean getPai() {
return pai;
}
}[/code]
Classe Familia…
[code]public class Familia {
private String sobrenome;
private ArrayList<Pessoa> membros = new ArrayList<Pessoa>();
private Pessoa maisvelho = new Pessoa("", 0, false, false);
private boolean jatempai = false;
private boolean jatemmae = false;
public Familia(String sobrenome) {
this.sobrenome = sobrenome;
}
public void incluirPessoa(Pessoa p) {
if (p.getMae() && p.getPai() == true) {
System.out.println("NAO PODE SER PAI E MAE");
return;
}
if (p.getMae() == true) {
if (jatemmae == false) {
jatemmae = true;
// System.out.println("ADD UMA MAE");
} else {
return;
}
}
if (p.getPai() == true) {
if (jatempai == false) {
jatempai = true;
// System.out.println(“ADD UM PAI”);
} else {
return;
}
}
membros.add(p);
}
public ArrayList<Pessoa> getMembros() {
return membros;
}
public String getSobrenome() {
return sobrenome;
}
public Pessoa getPessoaMaiorIdade() {
Pessoa pvelho = new Pessoa("", 0, false, false);
for (int x = 0; x < membros.size(); x++) {
if (membros.get(x).getIdade() > pvelho.getIdade()) {
pvelho = membros.get(x);
}
}
return pvelho;
}
public Pessoa getMembroMaisVelho() {
int idade = 0;
Pessoa p = null;
for(int i = 0; i< membros.size(); i++) {
p = membros.get(i);
if (p.getIdade() > idade) {
idade = p.getIdade();
System.out.println ("achou " +p);
}
}
return p;
}
public void imprimirPessoasdaFamilia() {
for (int x = 0; x < membros.size(); x++) {
System.out.println(membros.get(x).getNome());
}
//return membros.get(indice).getNome() + membros.get(indice).getIdade();
}
}
[/code]
Beleza, oque eu faço eh armazenar pessoas dentro de um Array do tipo Pessoa aí tenho esse código do main:
[code]public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
GrupoFamilia gf = new GrupoFamilia();
Familia f1 = new Familia("Maciel");
Pessoa p1 = new Pessoa("Joao", 15, true, false);
f1.incluirPessoa(p1);
p1 = new Pessoa("Tiburcio", 24, false, false);
f1.incluirPessoa(p1);
p1 = new Pessoa("Maria", 18, false, true);
f1.incluirPessoa(p1);
gf.incluirFamilia(f1);
f1 = new Familia("Bardoso");
p1 = new Pessoa("Pedro", 5, false, false);
f1.incluirPessoa(p1);
p1 = new Pessoa("Joaquina", 35, false, true);
f1.incluirPessoa(p1);
p1 = new Pessoa("Paula", 8, false, false);
f1.incluirPessoa(p1);
gf.incluirFamilia(f1);
gf.imprimirFamilias();[/code]
como vou uasr uma interface gráfica nao tenho como que ficar mudando o nome do objeto do tipo familia ow pessoa, aí eu fiz tudo em f1 e p1, logo preciso de alguem pra armazenar essas familias, nao é? Aí criei a classe grupofamilia:
[code]public class GrupoFamilia {
private ArrayList<Familia> familias = new ArrayList<Familia>();
public void incluirFamilia(Familia f) {
familias.add(f);
}
public ArrayList<Familia> getFamilias() {
return familias;
}
public void imprimirFamilias() {
for (int x = 0; x < familias.size(); x++) {
System.out.println(familias.get(x).getSobrenome());
}
}
public Familia getMaisVelho() {
Familia fmaisvelho = new Familia("");
for (int x = 0; x < familias.size(); x++) {
if (familias.get(x).getPessoaMaiorIdade().getIdade() > fmaisvelho.getPessoaMaiorIdade().getIdade()) {
fmaisvelho = familias.get(x);
}
}
return fmaisvelho;
}
}[/code]
Tem uns métodos perdidos ae pra ver quem é o mais velho, mas agora isso é irrelevante. O lance é que quando mando imprimir as familias, ele imprime as 2 que cadastrei, mas quando vou imprimir os membros, não ta rolando. Como fica o lance de imprimir os membros? Tentei uasr o metodo de imprimir pessoas que tá dentro do “familia” mas mesmo assim ele só chama as 3 pessoas da segunad familia, comose tivesse perdido as pessoas da primeira. oq to fazendo de errado?
Obrigado
Mal o post gigante