Packages and imports
A source file may start with a package declaration:
All the contents, such as classes and functions, of the source file are included in this package. So, in the example above, the full name of printMessage() is org.example.printMessage, and the full name of Message is org.example.Message.
If the package is not specified, the contents of such a file belong to the default package with no name.
Default imports
A number of packages are imported into every Kotlin file by default:
Additional packages are imported depending on the target platform:
JVM:
java.lang.*
JS:
Imports
Apart from the default imports, each file may contain its own import directives.
You can import either a single name:
or all the accessible contents of a scope: package, class, object, and so on:
If there is a name clash, you can disambiguate by using as keyword to locally rename the clashing entity:
The import keyword is not restricted to importing classes; you can also use it to import other declarations:
top-level functions and properties
functions and properties declared in object declarations
Visibility of top-level declarations
If a top-level declaration is marked private, it is private to the file it's declared in (see Visibility modifiers).