Package

소스는 패키지 선언과 함께 시작된다.

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.*

추가적인 패키지는 타겟플랫폼에 따라 다르다
JVM의 경우

  • java.lang.*
  • kotiln.jvm.*

JS의 경우

  • kotlin.js.*

Imports

디폴트 패키지를 제외하고 몇몇 파일은 자신만의 import 명령어를 갖는다. import를 위한 문법은 코틀린문법을 확인하면된다.
 
하나의 이름만 import 할 수도 있다.

import foo.Bar

또는 스코프 단위로 전체에 접근할 수도있다(패키지, 클래스, 오브젝트 기타등등)

import foo.*

만약 이름이 충돌된다면 모호하지 않게 as 키워드를 사용하여 지역적으로 다시 개명하여 사용할 수도 있다.

import foo.Bar
import bar.Bar as bBar

import 키워드는 클래스들을 임포트하는데 제약이 없다. 다른 정의들을 import하기 위해서 사용할 수도 있다.

  • 최상위 함수와 프로퍼티
  • 오브젝트 선언에서의 함수와 프로퍼티 선언
  • enum 상수들

자바와는 다르게 코틀린에서는 분할된 import static 문법을 가지고 있지 않다. 이러한 선언 모든것들은 보통 import 키워드를 사용하여 import 된다
Visibility of Top-level Declarations(최상위 정의에 대한 가시성)
만약 최상위 선언이 privated으로 선언되었다면, 그건 다른 파일에서는 접근이 불가능하게 선언된것이다.
 

카테고리: Kotlin

0개의 댓글

답글 남기기

Avatar placeholder

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.