Un archivo fuente puede comenzar con una declaración de paquete:

package org.example

funprintMessage()/*...*/class Message /*...*/// ...

Todo el contenido (como clases y funciones) del archivo fuente está incluido en el paquete declarado. Entonces, en el ejemplo anterior, el nombre completo de printMessage() es org.example.printMessagey el nombre completo de Message es org.example.Message.

Si no se especifica el paquete, el contenido de dicho archivo pertenece al paquete predeterminado que no tiene nombre.

Importaciones predeterminadas

Se importan varios paquetes en cada archivo de Kotlin de forma predeterminada:

  • kotlin.*
  • kotlin.anotación.*
  • kotlin.colecciones.*
  • kotlin.comparaciones.* (desde 1.1)
  • kotlin.io.*
  • kotlin.ranges.*
  • kotlin.secuencias.*
  • kotlin.texto.*

Se importan paquetes adicionales según la plataforma de destino:

  • JVM:
    • java.lang.*
    • kotlin.jvm.*
  • JS:
    • kotlin.js.*

Importaciones

Además de las importaciones predeterminadas, cada archivo puede contener sus propias directivas de importación. La sintaxis para las importaciones se describe en el gramática.

Podemos importar un solo nombre, por ejemplo

import org.example.Message // Message is now accessible without qualification

o todo el contenido accesible de un alcance (paquete, clase, objeto, etc.):

import org.example.*// everything in 'org.example' becomes accessible

Si hay un conflicto de nombres, podemos eliminar la ambigüedad usando como palabra clave para renombrar localmente la entidad en conflicto:

import org.example.Message // Message is accessibleimport org.test.Message as testMessage // testMessage stands for 'org.test.Message'

El import palabra clave no está restringida a la importación de clases; también puede usarlo para importar otras declaraciones:

  • funciones y propiedades de nivel superior;
  • funciones y propiedades declaradas en declaraciones de objetos;
  • constantes de enumeración.

Visibilidad de declaraciones de nivel superior

Si una declaración de nivel superior está marcada privadoes privado para el archivo en el que está declarado (consulte Modificadores de visibilidad).