Skip to content

패키지 및 임포트

소스 파일은 패키지 선언으로 시작할 수 있습니다:

kotlin
package org.example

fun printMessage() { /*...*/ }
class Message { /*...*/ }

// ...

클래스와 함수를 포함한 소스 파일의 모든 내용은 이 패키지에 포함됩니다. 따라서 위 예시에서 printMessage()의 전체 이름은 org.example.printMessage이며, Message의 전체 이름은 org.example.Message입니다.

패키지가 지정되지 않은 경우, 해당 파일의 내용은 이름 없는 기본 패키지(default package)에 속합니다.

기본 임포트

기본적으로 여러 패키지가 모든 Kotlin 파일로 임포트됩니다:

대상 플랫폼에 따라 추가 패키지가 임포트됩니다:

임포트

기본 임포트 외에도 각 파일은 자체적인 import 지시어를 포함할 수 있습니다.

단일 이름을 임포트할 수 있습니다:

kotlin
import org.example.Message // Message에 접근 가능합니다

또는 범위(scope)의 모든 접근 가능한 내용(패키지, 클래스, 객체 등)을 임포트할 수 있습니다:

kotlin
import org.example.* // 'org.example'의 모든 내용이 접근 가능해집니다

이름 충돌이 있는 경우, as 키워드를 사용하여 충돌하는 엔티티(entity)의 이름을 로컬에서 변경하여 모호성을 해소할 수 있습니다:

kotlin
import org.example.Message // Message에 접근 가능합니다
import org.test.Message as TestMessage // TestMessage는 'org.test.Message'를 나타냅니다

import 키워드는 클래스를 임포트하는 데에만 국한되지 않습니다; 다른 선언(declaration)들을 임포트하는 데에도 사용할 수 있습니다:

최상위 선언의 가시성

최상위 선언이 private으로 표시되면, 해당 선언이 선언된 파일에만 비공개로 유지됩니다 (자세한 내용은 가시성 변경자 참조).