Kotlin - Controle de Visibilidade

Neste capítulo, aprenderemos sobre os diferentes modificadores disponíveis na linguagem Kotlin. Access modifieré usado para restringir o uso das variáveis, métodos e classes usados ​​no aplicativo. Como outra linguagem de programação OOP, esse modificador é aplicável em vários lugares, como no cabeçalho da classe ou na declaração do método. Existem quatro modificadores de acesso disponíveis no Kotlin.

Privado

As classes, métodos e pacotes podem ser declarados com um modificador privado. Depois que qualquer coisa for declarada como privada, ela ficará acessível em seu escopo imediato. Por exemplo, um pacote privado pode estar acessível dentro desse arquivo específico. Uma classe ou interface privada pode ser acessível apenas por seus membros de dados, etc.

private class privateExample {
   private val i = 1
   private val doSomething() {
   }
}

No exemplo acima, a classe “privateExample” e a variável i podem estar acessíveis apenas no mesmo arquivo Kotlin, onde é mencionado, pois todas são declaradas como privadas no bloco de declaração.

Protegido

Protected é outro modificador de acesso para Kotlin, que atualmente não está disponível para declaração de nível superior, já que nenhum pacote pode ser protegido. Uma classe ou interface protegida é visível apenas para sua subclasse.

class A() {
   protected val i = 1
}
class B : A() {
   fun getValue() : Int {
      return i
   }
}

No exemplo acima, a variável “i” é declarado como protegido, portanto, só é visível para sua subclasse.

interno

Internal é um modificador recém-adicionado introduzido no Kotlin. Se alguma coisa estiver marcada como interna, esse campo específico estará no campo interno. Um pacote interno é visível apenas dentro do módulo em que é implementado. Uma interface de classe interna é visível apenas por outra classe presente dentro do mesmo pacote ou módulo. No exemplo a seguir, veremos como implementar um método interno.

class internalExample {
   internal val i = 1
   internal fun doSomething() {
   }
}

No exemplo acima, o método denominado “doSomething” e a variável são mencionados como internos, portanto, esses dois campos podem ser acessíveis apenas dentro do pacote sob o qual está declarado.

Público

O modificador público pode ser acessado de qualquer lugar na área de trabalho do projeto. Se nenhum modificador de acesso for especificado, por padrão ele estará no escopo público. Em todos os nossos exemplos anteriores, não mencionamos nenhum modificador, portanto, todos eles estão no escopo público. A seguir está um exemplo para entender mais sobre como declarar uma variável ou método público.

class publicExample {
   val i = 1
   fun doSomething() {
   }
}

No exemplo acima, não mencionamos nenhum modificador, portanto, todos esses métodos e variáveis ​​são públicos por padrão.