パッケージとインポート
ソースファイルはパッケージ宣言で始まることがあります:
kotlin
package org.example
fun printMessage() { /*...*/ }
class Message { /*...*/ }
// ...
ソースファイルのクラスや関数など、すべての内容は、このパッケージに含まれます。 そのため、上記の例では、printMessage()
の完全な名前は org.example.printMessage
であり、Message
の完全な名前は org.example.Message
です。
パッケージが指定されていない場合、そのようなファイルの内容は、名前のない_デフォルト_パッケージに属します。
デフォルトのインポート
多数のパッケージが、すべてのKotlinファイルにデフォルトでインポートされます:
- kotlin.*
- kotlin.annotation.*
- kotlin.collections.*
- kotlin.comparisons.*
- kotlin.io.*
- kotlin.ranges.*
- kotlin.sequences.*
- kotlin.text.*
ターゲットプラットフォームに応じて、追加のパッケージがインポートされます:
JVM:
- java.lang.*
- kotlin.jvm.*
JS:
インポート
デフォルトのインポートとは別に、各ファイルは独自の import
ディレクティブを含むことができます。
単一の名前をインポートできます:
kotlin
import org.example.Message // Message は修飾なしでアクセス可能になりました
または、パッケージ、クラス、オブジェクトなど、スコープ内のアクセス可能なすべての内容をインポートできます:
kotlin
import org.example.* // 'org.example' 内のすべてにアクセス可能になります
名前が衝突する場合、as
キーワードを使用して衝突しているエンティティをローカルでリネームすることで、曖昧さを解消できます:
kotlin
import org.example.Message // Message にアクセス可能
import org.test.Message as TestMessage // TestMessage は 'org.test.Message' を表します
import
キーワードはクラスのインポートに限定されません。他の宣言をインポートするためにも使用できます:
トップレベル宣言の可視性
トップレベル宣言が private
とマークされている場合、それは宣言されたファイルに対してプライベートになります(可視性修飾子を参照)。