코틀린에서 소스파일은 패키지 선언으로 시작할 수 있다.
package org.example
fun printMessage() { /*...*/ }
class Message { /*...*/ }
// ...
이 패키지에는 소스 파일의 클래스, 함수 등 모든 내용이 포함되어 있다. 따라서 위의 예에서 printMessage()의 전체 이름은 org.example.printMessage이고 메시지의 전체 이름은 org.example.Message이다.
패키지가 지정되지 않은 경우 이러한 파일의 내용은 이름이 없는 default 패키지에 속한다.
Default imports
기본적으로 모든 Kotlin 파일에 여러 패키지를 가져온다.
- kotlin.*
- kotlin.annotation.*
- kotlin.collections.*
- kotlin.comparisons.*
- kotlin.io.*
- kotlin.ranges.*
- kotlin.sequences.*
- kotlin.text.*
대상 플랫폼에 따라 추가 패키지를 가져온다.
- JVM:
- java.lang.*
- kotlin.jvm.*
- JS:
Imports
기본 import외에 각 파일에는 고유한 import 지시문이 포함될 수 있다. 단일로 가져올 수 있다.
import org.example.Message // Message is now accessible without qualification
또는 범위의 모든 액세스 가능한 콘텐츠(패키지, 클래스, 개체 등)을 가져올 수 있다.
import org.example.* // everything in 'org.example' becomes accessible
이름 충돌이 있는 경우 as 키워드를 사용하여 충돌 엔티티의 이름을 로컬로 변경하여 명확하게 할 수 있다.
import org.example.Message // Message is accessible
import org.test.Message as testMessage // testMessage stands for 'org.test.Message'
import 키워드는 클래스 import에만 사용되도록 제한하지 않고, 다른 선언을 가져오는 데 사용할 수도 있다.
- 최상위 함수 및 속성
- object 선언에 선언된 함수
- enum 상수
만약, 최상위 선언의 접근 제한자가 private인 경우, 해당 최상위 선언은 선언된 소스파일 내에 대해서만 private이다.