O construtor do objeto é um método que possibilita a criação de um objeto na memória. Para que possamos utilizar as instâncias do objeto, antes é preciso que o mesmo exista na memória.

Grosso modo funciona assim, constrói-se o primeiro objeto e adicionam-se os dados do Alan. Constrói-se o segundo objeto e adicionam-se os dados da Anna. E assim sucessivamente com todos os objetos que serão criados a partir da classe/objeto Aluno.

Assim sendo, note que estamos falando de uma mesma classe. Classe esta nos permite criar objetos distintos, como o objeto aluno Alan, o objeto aluno Anna. Repare que os dois objetos criados são do tipo Aluno, mas diferentes entre si. Outro ponto a distingui-los é o lugar que respectivamente ocuparão na memória, e que posteriormente refletirá no banco de dados.

Portanto, independentemente da quantidade de objetos que serão criados, todos compartilharão da mesma classe, dos mesmos atributos e dos mesmos métodos. Seja por exemplo, uma turma de 10 ou de 40 alunos.

Em outros termos, é a forma do programador se comunicar com o Java. Ele está dizendo, construa um ou mais objeto do tipo Aluno na memória, porque preciso adicionar o aluno Caio. Observe agora a sintaxe que vamos usar para adicionar os dados de um novo aluno, ou simplesmente para criar um novo aluno.

Para melhor entendermos o construtor, começaremos com a instanciação do objeto que é construído na classe executável, no método main. Dessa forma chama-se a classe “Aluno”, digitando [Al + (CTRL + ESPAÇO) => Aluno – cursoJava.classes] para simultaneamente importar a classe “Aluno”.

Na sequência faça como mostra a imagem abaixo:

A linha acima exemplifica a instanciação de um novo objeto (new Aluno()), do tipo Aluno, alocada na variável aluno01.

ENTENDENDO O CONSTRUTOR

Tem-se, Aluno (classe Aluno), aluno01 (variável), new (palavra reservada que invoca o construtor), new Aluno() (criando um novo objeto do tipo da classe). Somente depois que invocamos o construtor por meio da palavra reservada new é o que o objeto passa a existir na memória.

Para ilustrar, posicione o ponteiro do mouse sobre o objeto Aluno(), pressione a tecla [CTRL] e clique. Veja que você será redirecionado para a classe Aluno. Isto é, para a classe que representa o referido objeto do mundo real. Na classe onde estão os atributos do objeto e onde futuramente definiremos os métodos deste mesmo objeto.

Sintetizando o que foi disposto até o momento, utilizamos o construtor definido na “Classe Aluno” para instanciar o objeto. Em síntese para criar um objeto a partir da classe. Por meio da palavra reservada new um objeto do tipo “Aluno” é instanciado e alocado na variável “aluno01”.

MÉTODO CONSTRUTOR: IMPLEMENTAÇÃO

Quando definimos new Aluno(), estamos assim criando um objeto, mas por meio de uma referência direta ao construtor da classe Aluno. Volte a classe Aluno, em uma área livre dentro do escopo da classe. Ou seja, em uma área livre dentro do espaço delimitado por chaves. Nesta área pressione a tecla [CTRL e [barra de espaço]] => clique em Aluno() – Construtor.

Observe que o construtor tem o mesmo nome da classe, e é muito semelhante a um método comum. Mas não é um método comum, o construtor não tem retorno. E ainda, se você não se ocupar de escrever um construtor para a sua classe o compilador o fará por você. Porque o método construtor é um padrão do Java. Mas não se acomode, escreva o construtor.

Também podemos criar novo construtor já com um valor padrão como parâmetro. Agora não vale mais a opção do [CTRL + ESPAÇO], temos que digitar o código na mão. Faça como mostra a imagem abaixo:

Assim, dentro do escopo deste novo construtor, definiremos que o atributo nome vai receber o “nomePadrao” que será definido no método principal. Desse modo, no método principal poderemos criar um terceiro objeto que como padrão já iniciará com o nome “Esther”.  Assim sendo, poderemos iniciar um objeto sem nenhum valor ou com um valor padrão.

E podemos também criar mais um construtor que além de iniciar com um nome padrão iniciará também com uma idade definida.

No método principal atente-se para o fato de que quando iniciamos a construção de um novo objeto, serão listadas três opções. Estas opções referem-se aos construtores que definimos na classe Aluno.

CONCLUSÃO

O que temos agora? Dois objetos cujos valores ainda serão definidos. Um objeto já inicializado com um nome padrão. E um quarto objeto iniciado com dois valores padrões, uma String e um inteiro.

E por fim, repita com o quarto objeto o mesmo procedimento feito para o primeiro objeto que criamos. Posicione o ponteiro do mouse sobre o objeto Aluno(), pressione a tecla [CTRL] e clique. Veja que você será redirecionado para o construtor que este o objeto referencia.

Na ocasião em que fizemos este procedimento pela primeira vez, ainda não tínhamos criado nenhum construtor. E muito menos compilado o nosso projeto, por isso ele nos remeteu a classe e não ao construtor da classe.

EM POUCAS PALAVRAS

Concluímos então que Classes/objetos são tipos de dados não primitivos, porém, neste caso, definidos pelo programador. E para cada aluno que a gente queira adicionar ao nosso sistema, teremos um objeto instanciado na memória. Fica para você o exercício de criar o segundo objeto aluno.

E você deve estar pensando, imagine se tivéssemos uma lista de inscritos para um vestibular, contendo cerca de 1000 inscritos. Criaríamos da forma que estamos fazendo um objeto para cada candidato? Obviamente que não.

Alternativamente a forma como é feita no dia a dia do profissional desenvolvedor, estamos recorrendo a um processo didático de fácil entendimento. Assim, você estudante de programação poderá melhor compreender como se constrói um objeto. Bem como o papel de cada elemento em sua construção.

Em resumo, como sempre gradativamente vamos elevando a complexidade do nosso código. Posteriormente o que teremos que fazer é instanciar o objeto uma única vez. E a partir dos laços de repetição, receber os dados de 100, 1000, 10000 ou quantos forem necessários e ir adicionando-os na base de dados. E tudo isso acontecendo de forma automatizada.

Espero que tenham gostado e aprendido sobre a criação dos objetos e a dinâmica dos construtores com e sem passagem de parâmetros. E é isso desenvolvedores sigam consistente em seus estudos, mantenham-se motivados. Até a próxima.