Kotlin 패키지, 가져오기 (Packages)
패키지
package
키워드는 패키지를 정의하여, 패키지 지정은 소스 코드의 맨 위에 넣는다.
package com.devkuma
fun foo() {}
class Item {}
// ...
소스 파일(클래스, 함수 등)의 모든 내용은 선언된 패키지에 포함되어 있다. 따라서 위에 예제에서 알 수 있듯이 foo()
의 전체 이름 com.devkuma.foo
이며, Item
의 전체 이름 com.devkuma.Item
이 된다.
만약 패키지가 지정되지 않으면, 파일의 내용은 이름이 없는 “default” 패키지에 속하게 된다.
기본 패키지
아래의 8개의 패키지는 기본적으로 임포트된다. 그러기에 별도의 임포트 없이 사용 가능하다.
*
는 ‘전부’를 뜻한다.
kotlin.*
kotlin.annotation.*
kotlin.collections.*
kotlin.comparisons.*
kotlin.io.*
kotlin.ranges.*
kotlin.sequences.*
kotlin.text.*
해당 플랫폼에 따라 추가 패키지를 가져온다.
JVM:
java.lang.*
kotlin.jvm.*
JS:
kotlin.js.*
imports (가져오기)
import
패키지를 가져온다. as
는 가져온 엔티티에 대해 별칭 붙인다.
디폴트 Import를 제외하고 몇몇 파일은 자신만의 import
명령어를 갖는다.
하나의 이름만 지정하여 import 할 수 있다.
import foo.Bar // Bar에 접근 가능하게 된다.
또는 어떤 범위(패키지, 클래스, 객체 등)의 모든 접근 가능하게 할 수 있다.
import foo.* // 'foo'내에 모두 접근이 가능하게 된다.
이름 충돌이있는 경우 as
키워드를 사용하여 충돌하는 엔티티를 국소적으로 이름을 변경하여 명확하게 할 수 있다.
import foo.Bar // Bar는 접근 가능하다.
import bar.Bar as bBar // bBar는 'bar.Bar'을 의미한다.
import
키워드는 클래스를 가져오기 위해 한정되는 것은 아니다. 다른 선언을 가져 오는데 사용할 수도 있다.
- 최상위 함수 및 속성
- 객체의 선언에서 선언된 함수와 속성
- enum 정수
Java와 달리 Kotlin 다른 “import static” 구문을 제공하지 않는다. 모든 선언은 import 키워드로만 가져온다.
최상위 선언의 가시성
만약 최상위 선언에 private
가 붙어 있으면, 그것이 선언된 소스 파일에 대해서 비공개이다.
참조
최종 수정 : 2021-10-17