Exercicio com array de objetos

Vamos lá, @Xablau:

Sua classe Pessoa tem um atributo Pessoa. Uma classe pode ter um atributo dela mesma? Claro que pode, estamos trabalhando com objetos.

public class Pessoa {
 private String nome;
private int idade;
Pessoa[]filhos = new Pessoas[3]; // conforme enunciado, cada pessoa pode ter até três filhos.

//código omitido
}

Nessa classe, você vai ter o método adicionaFilhos. Para adicionar um filho, deve ser passado quem será adicionado. Um filho é um objeto do tipo Pessoa, certo? Então, toda vez que você adiciona um filho, você adiciona uma pessoa.

public boolean cadastrarFilho(Pessoa filhoQueVaiSerAdicionado) {
    for (i=0; i <= filhos.length; i++){ // Percorre todo o vetor "filhos"
        if (filhos[i] == null){ // Se o vetor na posição i for nulo, significa que há espaço
            filhos[i]= filhoQueVaiSerAdicionado; // Ou seja, achou espaço. Aqui, você está adicionando o objeto Pessoa na posição vazia do seu vetor filho
            return true;
        }
    }
return false;
}

Você também pode não passar um parâmetro e criar o filho no método. Vai da regra.

Não dá pra ser mais claro que isso.

2 curtidas

finalmente entendi, se filhos[i] != null significa que o array está cheio, logo não poderemos cadastrar mais filhos

Se algum elemento de filho for null, significa que tem espaço naquela posição.

entendi, obrigado por esclarecer