Implementar as classes a seguir:
a. Classe: Pessoa
i. Atributos da classe Pessoa:
nome(string) -> não pode receber um valor nulo ou
string vazia;
idade(inteiro) -> não pode receber um valor menor
que 0;
filhos(Array de objetos do tipo Pessoa) -> não pode
manter um array nulo.
ii. Implementar apenas um construtor recebendo valores
para os atributos nome e idade da classe Pessoa. OBS.:
este construtor deverá inicializar o atributo filhos com um
array de tamanho 3.
iii. Utilizar a técnica de encapsulamento e implementar métodos get e set para todos os
atributos (ver observação abaixo).
iv. OBS.: Não implementar o método set para o atributo
filhos. O atributo filhos só será manipulado pelo método
cadastrarFilho da classe Pessoa detalhado a seguir.
v. O método booelan cadastrarFilho(Pessoa filho) insere um
objeto do tipo Pessoa no array de filhos da Pessoa. O
método retorna verdadeiro se o filho foi cadastrado com
sucesso e falso quando o array de filhos estiver cheio ou
se o objeto filho passado como parâmetro é nulo.
vi. Na classe Pessoa, implementar o método String toString()
que retorna uma representação string de um objeto da
classe Pessoa no seguinte formato:
OBS.: Para simplificar não é necessário imprimir todos os
dados dos filhos dos filhos (se houverem), apenas o nome
de cada um dos filhos.
b. Implementar ua aplicação chamada AplicacaoPessoa que
instancia um objeto do tipo Pessoa, a partir do nome e da idade
informados pelo usuário. Em seguida, o programa deve oferecer
um menu para o usuário com as seguintes opções:
i. Cadastrar filho. O usuário deverá informar os dados do
filho a ser cadastrado;
ii. Imprimir dados da Pessoa. Nesta opção, o programa deve
imprimir os valores de todos os atributos do objeto Pessoa
instanciado fazendo uso do método toString
implementado.
alguém poderia me ajudar nesse item v? como adiciono objetos no array?
Não temos o seu código para saber, e também não é costume da comunidade resolver exercícios. Mas de forma teórica:
Você tem um atributo do tipo Pessoa chamado filhos. Esse atributo é um vetor e possui tamanho três.
No método, você valida se é possível adicionar algo (a regra que se aplica é: qntFilhos < 3). Se sim, você instancia um objeto pessoa numa posição disponível:
sim eu sei, eu não quero simplesmente copiar o código, quero entender a logica também. olha depois de muito quebrar a cabeça eu cheguei a esse código, não sei se está certo.
public boolean cadastrarFilho(Pessoa filhos[]) {
if(filhos.length <= 3) {
for(int i = 0; i<filhos.length; i++) {
System.out.println("digite o seu nome: ");
nome = in.nextLine();
System.out.println("digite a sua idade: ");
idade = in.nextInt();
}
return true;
}
return false;
}
Sua classe Pessoa possui um atributo filhos.
No método cadastrarFilho você vai inserir o filho recebido por parâmetro na primeira posição vazia do seu array filhos.