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