Un archivo debe empezar con una declaración de paquetes (si son necesarios):
package com.ejemplo fun miFuncion() { ... } class MiClase{ ... } // ...
Todos los contenidos (como pueden ser las clases y las funciones) del archivo tienen que ser parte de la declaración de paquetes. En el ejemplo de arriba, el nombre completo de miFuncion es com.ejemplo.miFuncion
, y el nombre completo de MiClase
es com.ejemplo.MiClase
.
Si el paquete no se especifica, los contenidos de ese archivo pertenecen al paquete por “defecto” el cual no tiene nombre.
Imports por Defecto
Los siguientes paquetes se importan por defecto en cada archivo Kotlin:
- kotlin.*
- kotlin.annotation.*
- kotlin.collections.*
- kotlin.comparisons.* (since 1.1)
- kotlin.io.*
- kotlin.ranges.*
- kotlin.sequences.*
- kotlin.text.*
En otras plataformas se importan:
- JVM:
- java.lang.*
- kotlin.jvm.*
- JS:
Imports
Además de los paquetes por defecto, cada archivo puede contener sus propias directivas.
Podemos importar un nombre único, ejemplo:
import com.ejemplo.MiClase // MiClase se puede acceder sin calificación
O todos los contenidos accesibles de un scope (paquetes, clases, objetos, etc)
import com.ejemplo.* // Todo en 'ejemplo' se vuelve accesible
La palabra clave import
no está restringida a importar clases, también puedes importar otras declaraciones:
- funciones de alto nivel y propiedades
- funciones y propiedades declaradas en declaraciones de objetos
- constantes enum
A diferencia de Java, Kotlin no tiene una sintaxis para los miembros estáticos, todo se importa con la misma palabra clave import
.
Visibilidad de las Declaraciones de Alto Nivel
Si una declaración de alto nivel se marca como privada, es privada al archivo donde se ha declarado.