패키지와 임포트
이 페이지의 마지막 수정: 2024년 8월 4일
...
소스 파일은 패키지 정의와 함께 시작될 수 있습니다:
1package org.example
2
3fun printMessage() { /*...*/ }
4class Message { /*...*/ }
5
6// ...
7
클래스와 함수를 포함하여, 해당 소스 파일의 모든 내용은 이 패키지에 속하게 됩니다.
즉, 위의 예제에서 printMessage()
의 전체 명칭은 org.example.printMessage
이 되고 Message
의 전체 명칭은 org.example.Message
가 됩니다.
패키지가 정의되어있지 않은 파일의 내용은 이름이 없는 default 패키지에 포함됩니다.
기본 임포트
몇몇 개의 패키지는 Kotlin 소스 파일에 기본적으로 임포트됩니다:
- kotlin.*
- kotlin.annotation.*
- kotlin.collections.*
- kotlin.comparisons.*
- kotlin.io.*
- kotlin.ranges.*
- kotlin.sequences.*
- kotlin.text.*
타겟팅하는 플랫폼에 따라, 다음 패키지들이 기본으로 추가 임포트됩니다:
- JVM:
- java.lang.*
- kotlin.jvm.*
- JS:
임포트
기본 임포트와는 별개로, 소스 파일들은 자신의 독자적인 import
표현을 포함할 수 있습니다.
하나의 전체 명칭을 통해 임포트 하거나:
1import org.example.Message // Message 는 패키지 경로 없이 접근할 수 있습니다.
2
범위 안에 있는 모든 패키지, 클래스, 오브젝트 들을 임포트할 수 있습니다:
1import org.example.* // 'org.example' 에 있는 모든 것들이 접근 가능합니다.
2
만약 이름에서 충돌이 발생하면, 이를 해당 파일 내에서 유일화하기 위해 as
를 사용할 수 있습니다:
1import org.example.Message // Message 에 접근 가능합니다.
2import org.test.Message as TestMessage // TestMessage 는 'org.test.Message' 로 작동합니다.
3
import
구문은 단지 클래스를 임포트하는 것으로 한정되지 않으며, 다른 정의된 엔티티들도 임포트할 수 있습니다:
최상위 레벨에 정의된 엔티티들의 가시성
최상위 레벨의 엔티티가 private
으로 마크되어 있으면 해당 엔티티는 그 엔티티가 정의된 파일 내에서만 사용할 수 있습니다(가시성 수정자 문서를 확인해보세요).
이 페이지가 도움이 되셨다면, 원문 페이지에 방문해 엄지척을 해주세요!