Busca avançada

Do Java ao Kotlin - 5 diferenças entre as linguagens base do desenvolvimento Android – Parte 2

segunda-feira, 11 de fevereiro de 2019 por Jefferson Silva
Do Java ao Kotlin - 5 diferenças entre as linguagens base do desenvolvimento Android – Parte 2

Continuando com a série de diferenças entre o Kotlin e o Java, que eu iniciei em um texto anterior aqui no blog, hoje vou abordar os tópicos de parâmetros com valor padrão, blocos condicionais como expressões, data classes, segurança com nulos e herança.

1 – Parâmetros com valor padrão

Um recurso presente no Koltin, que segue as linguagens de programação mais modernas, é a possibilidade de trabalhar com parâmetros com valor padrão. É possível definir um valor para caso o parâmetro não receba essa informação de quem chama o método. No Java isso é contornado com sobrescrita de métodos ou condicionais dentro do corpo do método. Ex:

2 - Blocos condicionais como expressões

No Java temos o operador ternário onde atribuímos um valor a uma variável com base no resultado de uma operação condicional. No Kotlin isso é levado a outro nível, os blocos condicionais if e when podem retornar um valor para a variável, porém a vantagem é a execução de blocos inteiros de código e no final retornar o valor. Ex:

3 - Data classes

Um dos meus recursos preferidos no Kotlin são as data classes, um recurso para eliminar o boilerplate dos inúmeros getters e setters das classes de negócio do Java. O Kotlin trabalha com o conceito de propriedade, enquanto o Java trabalha com atributos.

A diferença é conceitual, enquanto no Java por convenção os atributos são privados e utilizamos métodos getters e setters para acessá-los, no Kotlin as propriedades permitem o acesso direto pela instância da classe utilizando o operador “.” e caso exista a necessidade de aplicar alguma regra de negócio, aí sim aplicamos o getter ou setter, porém isso fica transparente para quem chama.  

Com o recurso do data class conseguimos definir uma classe de negócio, as vezes, em apenas uma única linha. Além do objeto já contar com implementações dos métodos toString() e copy() (outro ponto interessante que vou abordar em outro artigo).

4 - Segurança com nulos

Esse tópico rende um artigo exclusivo para ele, porém hoje vou abordar um ponto que considero fundamental. O Kotlin preza pela segurança no trabalho com nulos e um dos pontos dessa abordagem define que uma vez que a classe é instanciada com um valor, a menos que o objeto tenha o tipo definido como nullable, esse objeto não pode receber um valor nulo. Ex:

Isso ajuda a previnir problemas com NullPointerExceptions. Note que como em Kotlin tudo são objetos, essa regra também se aplica a outras variáveis como Int, String, Double, etc... Em outra parte desse série vou me aprofundar mais em nullable-types no Kotlin.

5 - Herança

Para finalizar uma bem rápida. O Kotlin não favorece a herança. Diferente do Java, no Kotlin para uma classe poder ser herdada ela precisa fazer uso do operador open na sua declaração. Caso contrário ao tentar herdar dessa classe você terá um erro de compilação.

Espero ter conseguido ajudar você a diferenciar as duas linguagens. Se você ficou com alguma dúvida ou tem alguma informação complementar, deixa um comentário aqui embaixo. E caso ainda não tenha lido o primeiro artigo dessa série, fique sabendo ainda mais sobre as diferenças entre as Linguagens Base do Desenvolvimento Android aqui.

Fontes
•    Documentação Kotlin
•    Documentação Java

Compartilhar

Jefferson Silva
Autor
Jefferson Silva

Desenvolvedor de Soluções da Code 21. É formado em Análise e Desenvolvimento de Sistemas pelo Centro Universitário Curitiba – Unicuritiba e pós-graduando em App Development pela Pontifícia Universidade Católica do Paraná. Já publicou artigos na área de tecnologia e é um entusiasta do desenvolvimento mobile e de UX. Se deseja viabilizar seu software web ou mobile, migrar para nuvem ou implantar ferramentas de TI, entre em contato com a Code 21.