Olá desenvolvedores, hoje falaremos sobre listas dinâmicas. É isso, estamos de volta com mais um tutorial da série de tutorias sobre orientação a objetos. Onde estamos falando sobre listas. Dessa vez vamos falar sobre listas dinâmicas. Já apresentei a vocês o conceito de listas, e aprendemos como implementá-las. Porém, não do modo como deveria ser, que é o mais dinâmica possível.

Até o momento nós instanciamos o objeto disciplina dentro da Classe Aluno. No entanto, deixamos tudo preparado para receber as disciplinas do aluno em um contexto de lista.

No método principal instanciamos a disciplina e atribuímos um nome a ela e um valor a nota. Na sequência, recuperamos a lista na Classe Aluno e passamos por parâmetro o objeto que acabamos de criar.

Disciplina disciplina1 = new Disciplina();
Disciplina1.setDisciplina("HTML");
Disciplina1.setNota(75)

aluno.getDisciplina().add(disciplina1)

Mas o problema é que tivemos que proceder dessa forma para cada uma das disciplinas que adicionamos. E o fizemos diretamente no código. Definitivamente este ainda não é o melhor caminho para um código performático de um sistema dinâmico. Não. Podemos aprimorá-lo ainda mais.

IMPLEMENTANDO UMA LISTA DINÂMICA

Vamos lá, o ideal é criarmos um laço de repetição que irá nos permitir receber do usuário quantas disciplinas e notas desejarmos. E o melhor, escrevendo esse código uma única vez.

E quem está pensando que vamos utilizar o laço de repetição for, acertou. Não precisaremos aqui de um foreach, o for padrão que comumente se utiliza nos atenderá. No entanto, dentro deste for será preciso instanciar uma disciplina. Além é claro de solicitar ao usuário que entre com os dados que queremos obter.

E uma vez que instanciamos a disciplina dentro do for, os respectivos nomes das notas e disciplinas serão atribuídos e posteriormente adicionados à lista.

O que fizemos foi solicitar os dados do aluno. E então instanciar o objeto aluno para que os dados obtidos pudessem ser atribuídos aos seus correspondentes lugares na memória. Do mesmo modo procedemos com a disciplina, só que, dentro do laço de repetição for.

No momento em que solicitamos ao usuário as notas e disciplinas, veja que concatenamos a variável “pos”. Esta variável cumpre a função de orientar o usuário quanto a posição da disciplina que ele está inserindo. Ou seja, se é a primeira, segunda, terceira ou quarta disciplina.

Executando nosso programa, veja na prática como funciona esta informação na caixa de diálogo.

A saída do programa é mostrada abaixo:

EM POUCAS PALAVRAS

Agora sim, temos no programa que estamos desenvolvendo juntos uma orientação a objetos bem bacana. Nosso código está cada vez mais performático e o nosso sistema cada vez mais dinâmico. Continue com a gente para continuarmos juntos evoluindo nosso código.

Espero que tenham gostado e que estejam de fato compreendendo a orientação a objetos, e seus benefícios. Até o próximo.