Binary World

패키지와 임포트(Packages and Imports) 본문

개발자의 길/Kotlin

패키지와 임포트(Packages and Imports)

모쿠 2019. 5. 28. 20:50

패키지(Packages)

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

package foo.bar

fun baz() { ... }
class Goo { ... }

// ...

소스 파일의 모든 내용들(클래스와 함수 같은)은 선언된 패키지에 포함된다. 따라서, 위의 예제에서 baz()의 전체 이름은 foo.bar.baz이고, Goo()의 전체 이름은 foo.bar.Goo

패키지가 명시되지 않았다면, 파일의 내용들은 "default" 패키지에 속해있는 것이다.

 

디폴트 임포트(Default Import)

다수의 패키지가 모든 코틀린 파일에 기본적으로 포함되어 있다.

  • kotlin.*
  • kotlin.annotation.*
  • kotlin.collections.*
  • kotlin.comparisons.* (since 1.1)
  • kotlin.io.*
  • kotlin.ranges.*
  • kotlin.sequences.*
  • kotlin.text.*

추가적인 패키지는 타깃 플랫폼에 따라 임포트 한다.

  • VM:
    • java.lang.*
    • kotlin.jvm.*
  • JS:
    • kotlin.js.*

 

임포트(Imports)

디폴트 임포트와 별개로, 각 파일들은 자신의 임포트 경로를 갖고 있다. 임포트를 위한 구문은 문법에서 표현된다.

단일 이름으로 임포트 하거나,

import foo.Bar // Bar는 현재 자격에 상관없이 모두 접근 가능

범위의 모든 접근 가능한 내용(package, class, object etc)을 임포트 할 수 있다.

import foo.* // 'foo'에 모든 것들을 접근 가능

이름이 충돌한다면, as 키워드를 이용해 지역 내에 새로 이름을 생성하여 모호성을 제거한다.

import foo.Bar // Bar는 접근 가능
import bar.Bar as bBar // bBar는 'bar.Bar'를 나타냄

import 키워드는 클래스 임포트만 국한되지 않는다. 다른 선언을 가져오는데도 사용 가능하다.

  • 최상위 함수와 속성들;
  • 객체 선언에서 선언된 함수와 속성들;
  • enum 상수.

자바와 다르게, 코틀린은 별도의 "import static" 구문을 갖고 있지 않다. 모든 선언들은 정규 import 키워드를 사용하여 임포트 된다.

 

최상위 선언의 가시성(Visibility of Top-Level Declarations)

최상위 선언이 private로 표시되면, 선언된 파일은 비공개가 된다. 

'개발자의 길 > Kotlin' 카테고리의 다른 글

리턴과 점프(Returns and Jumps)  (0) 2019.05.29
제어 흐름(Control Flow)  (0) 2019.05.28
기본 타입(Basic Type)  (0) 2019.05.28
기본 구문(Basic Syntax)  (0) 2019.05.28
코틀린 개발환경 구축 및 출력  (0) 2019.05.27
Comments