Kotlin: Como criar vários construtores

Este artigo objetiva demonstrar como criar vários construtores em uma classe Kotlin.

Em Kotlin, é possível criar o construtor diretamente na definição da classe, mas vale ressaltar que isso acontece indiretamente, pois assim que uma classe é definida com parâmetros, ela já passa a ter um construtor, o qual será denominado de “construtor principal”. O construtor é declarado de forma implícita, pois está presente sem que haja a necessidade de inserir a palavra construtor, tratando-se, portanto, de um padrão da linguagem Kotlin e uma de suas facilidades, que a tornam uma ótima linguagem.

Neste caso, foi utilizado uma classe “Pessoa” como exemplo.

Classe Pessoa

Pronto! Já está criado a classe e o construtor. Como o construtor é declarado implicitamente em toda a classe Kotlin, já é possível utilizá-lo inicializando uma classe e transmitindo os dados requeridos.

Classe Pessoa sendo criada e chamando o construtor principal

Desta forma, o código já vai funcionar e uma pessoa foi instanciada. A palavra construtor pode ser incluída a na declaração da classe, o que não altera o seu funcionamento.

Classe Pessoa com a palavra construtor de forma implícita

Inicialização da classe Pessoa.

Classe Pessoa sendo criada e chamando o construtor principal

Com a palavra “construtor” escrita ou não na classe, o construtor principal existe e a classe já pode ser inicializada com ele.

“Ah, mas e se eu precisar de mais construtores? Como faço?”

Em Kotlin, assim como em outras linguagens, é possível ter múltiplos construtores. Entretanto, o construtor padrão sempre deve ser chamado através de outro construtor ou diretamente.

Agora o atributo “altura” será incluído na classe pessoa, mas ele não fará parte do construtor padrão. Logo abaixo, será criado o construtor secundário, agora com todos os parâmetros.

Classe Pessoa com o construtor secundário declarado

Note que o construtor secundário precisa chamar o construtor principal através da palavra “this” e passar os parâmetros requeridos pelo construtor principal (nome, sobrenome, idade). E depois indicar que o atributo “altura” recebe a altura passada por parâmetro. No construtor principal, não é necessário fazer essa atribuição dos parâmetros, pois isso já é padrão da linguagem Kotlin para o construtor principal. Agora ao tentar criar uma Pessoa, os dois construtores estão disponíveis para serem utilizados. Veja na imagem abaixo.

Para utilizar o construtor secundário, basta passar o parâmetro “altura” junto com nome, sobrenome e idade.

Utilizando o construtor secundário

Agora será inserido mais um atributo à classe Pessoa — o peso –, e um construtor será criado com os atributos existentes e mais o atributo peso.

A inicialização continua funcionando da mesma maneira, além dos parâmetros no “this” que chamam o construtor principal.

Instanciando a classe e chamando o terceiro construtor

É importante entender que no terceiro construtor, foi feita a chamada ao construtor principal. Obrigatoriamente o construtor principal sempre deve ser chamado, seja de forma direta ou através de outro construtor, como pode ser visualizado abaixo:

Criando o terceiro construtor que usa o construtor principal

Note que o terceiro construtor foi alterado, sendo incluído a altura com parâmetro no “this”, ação que modifica a sua chamada para o construtor secundário, que requer quatro parâmetros, e não a chamada direta para o construtor principal.

Agora o construtor secundário é chamado, passando os quatro parâmetros requeridos por ele, e ele chama o construtor principal passando os três parâmetros que ele contém.

“E se precisar utilizar um construtor apenas com nome e sobrenome?”

Caso isso aconteça, será necessário alterar o construtor principal para receber só os dois parâmetros e criar um outro construtor que receba três parâmetros para não quebrar o código, ou alterar a chamada ao construtor principal no construtor secundário. Abaixo foi escolhido por criar um novo construtor.

Quarto construtor utilizando apenas dois parâmetros

Agora o construtor secundário não chama mais o construtor principal e sim o quarto construtor. Dessa forma, são quatro construtores para a classe Pessoa.

Este é um pequeno exemplo de como criar vários construtores com a linguagem Kotlin. Mas espero que tenham gostado do artigo e que ele ajude quem esta começando ou pretende começar a desenvolver aplicativos Android com a linguagem.

Um abraço e até a próxima!

Referências para esta publicação: