Olá, o objetivo do tutorial de hoje é a prática da manipulação de array de objetos. O contexto é semelhante ao de listas, ou seja, possibilitar, neste caso o cadastro de quantas disciplinas o usuário desejar. Porém, dessa vez trabalharemos com array, e dentro deste array implementaremos a lista de disciplinas.
É lugar comum a necessidade de se trabalhar com array de objetos em programação. Seja trabalhando com elementos gráficos, seja trabalhando no front-end com Javascript, enfim, são inúmeros os casos e as rotinas em que a implementação de um array de objetos se faz necessária. Haverá situações em que a própria linguagem exigirá isso de você.
Considerando o cenário de desenvolvimento de um sistema escolar, onde aluno é o nosso objeto, instância da classe Pessoa, criaremos um array de alunos. Este array inicialmente receberá apenas um aluno.
Aluno[] arrayAluno = new Aluno[1];
Temos instanciado um aluno, então alocaremos este “um aluno” na primeira posição do array que acabamos de criar.
arrayAluno[0] = aluno;
ARRAY DE OBJETOS: IMPLEMENTAÇÃO
E para percorrer o array, implementaremos a estrutura de repetição for. Que começará com zero, e prosseguirá a varredura enquanto a variável de controle não tiver atingido o tamanho do array. Para efeito de teste poderemos imprimir o nome do aluno chamando o array e informando a posição. E por se tratar de um array de objetos, note que agora temos acesso a todos os atributos do aluno.
for(int pos = 0; pos < arrayAluno.length; pos++){
System.out.println("NOME: " +arrayAluno[pos].getNome());
}
Ao executar o programa, as linhas de código acima funcionarão perfeitamente. Mas o que queremos é um array de disciplinas. Dessa forma iremos aninhar um segundo laço de repetição dentro do que acabamos de implementar.
Então a partir do arrayAlunos na posição que está sendo percorrida, pegaremos a lista de disciplinas.
for(Disciplinas disc : arrayAlunos[pos].getDisciplinas()){
System.out.println("DISCIPLINA: " +disc.getDisciplinas());
}
E por fim, dentro de disciplinas temos as notas referente a ela, o que faremos então é aninhar dentro da estrutura de repetição da lista de disciplinas um for para as notas. Este laço vai iterar enquanto a variável de controle for menor que o tamanho do array de notas.
for(int posnota = 0; posnota < disc.getNota().length; posnota++){
System.out.print("NOTA " +(posnota + 1)+ ": " +disc.getNota()[posnota]);
}
A impressão no console, dessa estrutura fica como mostrado na imagem abaixo:
EM POUCAS PALAVRAS
Ignorar a manipulação de arrays seja de forma simples ou de objetos, é criar obstáculos a ascensão da própria carreira. Visto que este é um conhecimento essencial na resolução de problemas e/ou implementação de rotinas de sistemas.
Então a partir de uma estrutura de laços de repetição aninhados, trabalhamos com listas e com arrays de objetos. E se você compreendeu tudo até aqui, você está mais que preparado para trabalhar com arrays com tranquilidade e segurança. Eu fico por aqui e nós nos vemos no próximo tutorial.