SVG Icons

Parâmetros Padrões Em Kotlin

Como muitas linguagens modernas, o Kotlin também aceita valores padrão em parâmetros de função.

Esses valores padrão são usados ​​quando os parâmetros são omitidos, tornando os parâmetros correspondentes opcionais. Em comparação com outras línguas, isso pode reduzir o número de recargas.

Veja um exemplo aqui:

Por favor observe o seguinte:

O valor padrão do parâmetro param3 é exatamente o tamanho da matriz param1. Isso é realmente incrível! Aponte para Kotlin.

O valor padrão é definido usando o símbolo = imediatamente após definir o respectivo tipo.

Os métodos de sobreposição sempre usarão os valores padrão dos parâmetros do método básico. Quando um método substitui um método com um valor padrão no parâmetro, o valor deve ser omitido da assinatura. Veja um exemplo:

Legal certo?

Recursos e métodos padrão

Assim como o Java, o Kotlin é uma linguagem de programação orientada a objetos e, como a maioria das linguagens desse paradigma, permite a criação de interfaces como forma de estabelecer o comportamento para implementação de outras classes. Mas você já sabe disso, não é? Então, vamos para a parte importante! Em comparação com o Java, quais são as vantagens das interfaces no Kotlin?

Característica

Em Java, uma interface não pode conter informações sobre o estado de um objeto. Isso também é verdadeiro no Kotlin, mas a linguagem permite que as propriedades sejam definidas por meio de classes que implementam interfaces. Um pouco confuso? Então, vamos ver um exemplo!

Imagine um sistema que precisa verificar a identidade de um usuário.Para isso, você precisa definir uma interface que retornará a senha de um possível funcionário ou administrador. Vamos dar uma olhada no código? Java primeiro:

Como você pode ver, acabamos de criar uma propriedade, e agora uma classe implementa essa interface, ela pode usá-la, consulte:

 

Portanto, podemos ver que usar as propriedades na interface em Kotlin é uma boa opção para gerar getters e setters idiomáticos em Java, o que garante a legibilidade do código.

Método padrão

Se você estiver usando Java 8, o método padrão não é nada novo, mas para muitas pessoas que ainda estão presas no Java 6 ~, que pode ser executado em dispositivos Android, esse recurso acabará se tornando uma grande vantagem da linguagem Kotlin.

Vamos voltar ao exemplo anterior: nosso objetivo é garantir a autenticação, certo? Portanto, é importante que tenhamos outra interface para estabelecer a assinatura do método que executará este processo, para essas informações, consulte o código Java:

Até agora está tudo bem, mas o que devo fazer se demonstrar o seguinte fato: Na maioria dos casos, preciso do mesmo comportamento para realizar o processo de autenticação, e apenas em alguns casos excepcionais (por exemplo, no caso do administrador), será de uma maneira diferente. Como resolver esse problema?

Em Java, você pode copiar e colar o código onde precisar (você se sentirá mal no futuro, então desista dessa opção) ou criar uma classe que implemente essa interface, defina o comportamento padrão e, em seguida, nessas classes, se necessário, você pode estender o comportamento, ou usar a composição, certo? Bem, há outra opção em Kotlin:

Sim, ele é! Isso mesmo! No Kotlin, você pode fornecer uma implementação padrão para um método de interface, o que impedirá que a classe que o aplica defina seu próprio comportamento. Legal certo? ! Você acabou de reutilizar o código existente da fundação e ainda tem a única chance de estender a classe para a próxima oportunidade.

Declaração de classe

No Kotlin, os arquivos podem conter diferentes declarações de classe, que são feitas usando classes de palavras reservadas. A seguir está a declaração de classe mais simples possível em Kotlin.

Parecido com drogas

No exemplo acima, como a classe Medication não tem corpo, podemos omitir a chave antes de seu nome.

Construtores

Construtor é uma função especial desta classe, usada para criar e inicializar objetos derivados dele.

Kotlin distingue criadores de categorias entre categorias primárias e secundárias. O construtor principal da classe faz parte de seu título e pode conter apenas uma lista de parâmetros, conforme mostrado a seguir.

Como o construtor principal não pode conter nenhum código, uma classe pode conter um ou mais blocos de inicialização, que são executados na ordem declarada no corpo. Conforme mostrado no código 1, nesses blocos de inicialização, podemos acessar quaisquer parâmetros existentes no construtor principal. O relacionamento entre o construtor principal e os atributos será descrito em detalhes posteriormente neste artigo.

Código 1. Blocos de inicialização

Além do construtor principal, uma classe também pode declarar um ou mais construtores secundários. Por sua vez, esses códigos devem sempre usar as palavras reservadas do construtor em suas declarações, mesmo que o modificador de acesso seja omitido ou nenhum comentário seja usado no código, conforme mostrado no código 2.

Código 2. Construtor secundário

Se uma classe tiver vários construtores, um dos quais é o construtor principal, cada construtor secundário deve ser delegado ao construtor principal. Quando os dois construtores estão na mesma classe, use a palavra reservada this para delegar de um construtor a outro.

Podemos usar o valor padrão do construtor delegado da classe. Para provar isso, adicionaremos um terceiro parâmetro à contra-indicação do medicamento no construtor. Considerando que a classe Medicament pode ser inicializada sem este valor da propriedade, neste caso ela se tornará uma mensagem padrão, podendo ser modelada no código 3.

Código 3. Valores padrão do construtor delegado

Portanto, na comissão do construtor, nós (fórmula, dose "pessoas alérgicas ao $ fórmula não especificam esse medicamento") informamos o valor padrão da natureza da contra-indicação, para que possamos utilizar ou não este terceiro parâmetro para instanciar a categoria, conforme mostrado no código 4.

Código 4. Instanciando uma classe com ou sem parâmetros

No exemplo acima, o objeto drug1 iniciará com o valor padrão do atributo taboo, que é "Este medicamento não é adequado para pessoas alérgicas à fórmula $". Para o objeto medicine2, o valor do atributo taboo será o valor informado no construtor, ou seja, "meu tabu".

Acha que consegue acrescentar nosso conteúdo? Nós deixe uma mensagem ou email. Pegou o artigo deixe os créditos, plágio é crime.

Próxima postagem Postagem anterior
SEM COMENTÁRIOS
Adicionar comentário
comment url