Kotlin - Construtores

Joel Amálio
2 min readAug 30, 2019

--

Construtor obtido em svgsilh

O que é um construtor?

É uma função que tem o mesmo nome da classe e a sua única atribuição é criar uma nova instância desta classe.

Como fazemos para criar uma instância de uma classe?

Na linguagem Java, usamos a palavra reservada new antecedendo a chamada do método construtor:

Já em Kotlin, a chamada é mais simples. Pois, usamos o construtor diretamente sem a necessidade do new:

Quantos tipos de construtores existem e quais são?

Em Kotlin, existem dois tipos:

  • Primário

Ele segue o nome da classe e faz parte do cabeçalho da mesma. Só existe apenas um construtor primário por classe, independentemente que seja declarado com acesso público ou privado.

Se todos os parâmetros possuírem um valor padrão, o compilador irá gerar novo um construtor sem parâmetros adicionais que utilizará os valores padrões.

  • Secundário

É declarado com a palavra reservada constructor, dentro do corpo da classe, sendo possível declarar um número ilimitado destes construtores.

Porém, em Kotlin, não é indicado realizar sobrecarga desses construtores. Já que é interessante usar o recurso da linguagem para atribuir os valores padrões que irão cobrir diversas possibilidades para instanciar um novo objeto.

Exemplos

O construtor sem parâmetros pode ser declarado de várias maneiras, mas a palavra reservada constructor poderá ser omitida caso não tenha nenhum modificador de visibilidade ou uma anotação associada ao construtor primário:

Se não existir nenhum construtor declarado explicitamente em uma classe, o construtor default, sem argumentos, será gerado automaticamente:

Em seguida, vamos visualizar um construtor primário com parâmetros:

Também é possível criar uma sobrecarga do construtor supracitado, simplesmente atribuindo um valor padrão para uma ou mais variáveis:

E por fim, para declarar um construtor secundário, faz-se necessário uma chamada direta a this ou precisaremos delegar essa responsabilidade para outro construtor que faça essa referência:

Conclusão

Acabamos de ver diversas formas de construir novos objetos com a linguagem Kotlin. Espero ter ajudado a vocês entenderem um pouco mais sobre a dinâmica da criação de novos objetos.

Qualquer dúvida ou sugestão é só falar, esterei a disposição para tentar ajudar.

--

--