Kotlin - Control de visibilidad
En este capítulo, aprenderemos sobre los diferentes modificadores disponibles en el lenguaje Kotlin. Access modifierse usa para restringir el uso de las variables, métodos y clases usados en la aplicación. Como otros lenguajes de programación OOP, este modificador es aplicable en múltiples lugares, como en el encabezado de la clase o en la declaración del método. Hay cuatro modificadores de acceso disponibles en Kotlin.
Privado
Las clases, métodos y paquetes se pueden declarar con un modificador privado. Una vez que algo se declara como privado, será accesible dentro de su alcance inmediato. Por ejemplo, se puede acceder a un paquete privado dentro de ese archivo específico. Solo sus miembros de datos pueden acceder a una clase o interfaz privada, etc.
private class privateExample {
private val i = 1
private val doSomething() {
}
}
En el ejemplo anterior, la clase “privateExample” y la variable i ambas pueden ser accesibles solo en el mismo archivo Kotlin, donde se menciona ya que todas están declaradas como privadas en el bloque de declaración.
Protegido
Protegido es otro modificador de acceso para Kotlin, que actualmente no está disponible para la declaración de nivel superior, ya que cualquier paquete no puede protegerse. Una clase o interfaz protegida solo es visible para su subclase.
class A() {
protected val i = 1
}
class B : A() {
fun getValue() : Int {
return i
}
}
En el ejemplo anterior, la variable “i” se declara como protegido, por lo tanto, solo es visible para su subclase.
Interno
Internal es un modificador recién agregado introducido en Kotlin. Si algo está marcado como interno, ese campo específico estará en el campo interno. Un paquete interno es visible solo dentro del módulo bajo el cual se implementa. Una interfaz de clase interna es visible solo por otra clase presente dentro del mismo paquete o módulo. En el siguiente ejemplo, veremos cómo implementar un método interno.
class internalExample {
internal val i = 1
internal fun doSomething() {
}
}
En el ejemplo anterior, el método llamado "doSomething" y la variable se mencionan como internos, por lo tanto, estos dos campos pueden ser accesibles solo dentro del paquete bajo el cual se declara.
Público
Se puede acceder al modificador público desde cualquier lugar del espacio de trabajo del proyecto. Si no se especifica ningún modificador de acceso, de forma predeterminada estará en el ámbito público. En todos nuestros ejemplos anteriores, no hemos mencionado ningún modificador, por lo tanto, todos están en el ámbito público. A continuación se muestra un ejemplo para comprender más sobre cómo declarar una variable o método público.
class publicExample {
val i = 1
fun doSomething() {
}
}
En el ejemplo anterior, no hemos mencionado ningún modificador, por lo que todos estos métodos y variables son públicos por defecto.